Size: a a a

2020 January 17

БС

Бешеный Сапиенс in rust_offtopic
Alex Zhukovsky
в нашем случае нужен очень шустрый бекенд в который можно ходить по сети. Это не епархия раста?
Поставь вместо Rust например C/C++ и попробуй задать вопрос снова. Сам поймёшь что скорее написать веб сервер вроде NGINX это да, заебись а вот написать просто микоосервис. Ну хз. Если оеалтайм какой-то дикий то да но это очень мало кому мало где надо и это нефига не Мейн путь языка . Вот у Go микоосервис это Мейн путь если не единственный вообще
источник

KR

Kai Ren in rust_offtopic
Nikita Nazarenko
Как бы так сказать, я не говорю про конкретно tokio, я скорее про общее впечатление от того что приходится делать чтобы что-то написать.

например хотим мы вебсокеты. Понятное желание, идём на crates/io и смотрим что есть, есть ws который за собой тащит токио. Стопэ пацантрэ, я не просил мне никакого рантайма, мне надо обёртку над сокетом в которую я могу сказать ws://*** и получить сейт-мойшину, которую я уже сам буду read и write. Но нет, для этого надо искать невнятное нечто от кого-то там на второй странице поиска.

Ладно, пробуем открыть сокет. В std он будет блокирующий без уариантов. Чтобы получить варианты надо что? правильно, пойти на crates.io и там взять mio, который обёртка над этими самыми poll/select. Обёрточка кстати тоже той ещё дурацкости. А уж если unix сокет нужен, то тут пацан сорян, мы тебе не поможем, мы ж себе не враги такое делать. вон тебе обёртка над open как-нибудь сам справься, а?

вздыхаем и пробуем скрестить ужа с ежом, послушать udp сокет обработать то что оттуда пришло и впилить в вебсокет. И тут понимаем что асинки тут нахер не упёрлись от слова вообще, но с помощью имеющихся абсракций сделать конечный автомат на non-block read, ну вот как-то больно. Сильно больнее чем на практически любом другом языке который я знаю. Даже больнее чем на голом си, просто потому что ты пишешь ровно то же самое что на си, только в синтаксисе раста.

а на это всё кладём маленькую вишенку - зачастую E который тебе нахер не упало обрабатывать вот прям вот здесь, не пробросить, потому что E и E они разные и не сводятся к std:Error. А from не реализовать, потому что ни тот ни другой E не твои. И сидишь такой, в одном полужопии пики точёны, в другом хуи дрочёны
Не понятно только зачем тебе руками делать то, для чего уже либы написаны. У меня "хотим вебсокеты" и "получить сейт-мойшину, которую я уже сам буду read и write" как-то не собо вяжется, если речь об асинке.
источник

NN

Nikita Nazarenko in rust_offtopic
Kai Ren
Хм, странно) Мне знакома твой боль, но этот период давно прошёл. Есть проблема, когда прям хочешь настроить красивых абстракций "здесь и сейчас", и что это с пол-пинка не получается. Но потом как-то всё сглаживается и начинается складываться.
Мне скорее лень писать тот набор абстракций который был бы удобен мне для моих целей. Тоненький, но потребует где-то полгода не особо напряжённой работы. Возможно когда-нибудь я всё-таки соберусь или таки найду то что мне надо.
источник

NN

Nikita Nazarenko in rust_offtopic
Kai Ren
Не понятно только зачем тебе руками делать то, для чего уже либы написаны. У меня "хотим вебсокеты" и "получить сейт-мойшину, которую я уже сам буду read и write" как-то не собо вяжется, если речь об асинке.
так мне асинк и не нужен
источник

БС

Бешеный Сапиенс in rust_offtopic
Gymmasssorla
Если язык кроссплатформенный, это ещё не значит, что ты обязан писать кроссплатформенно
Нормальные кроссплатформенные приложения на C++ это на самом деле несколько версий одного приложения написанные под разные платформы.) Да даже тот же Flutter емнип заставляет отдельные формочки для андроида и Айфона писать )
источник

БС

Бешеный Сапиенс in rust_offtopic
Emmanuel Goldstein
Нахрена делать, чтобы серверный код работал не на Unix? Ты отказываешься от оптимизаций и тратишь лишнее время ради совершенно невозможного случая.
Да ещё и не на x64
источник

AK

Alexander Krivitskiy in rust_offtopic
Бешеный Сапиенс
Нормальные кроссплатформенные приложения на C++ это на самом деле несколько версий одного приложения написанные под разные платформы.) Да даже тот же Flutter емнип заставляет отдельные формочки для андроида и Айфона писать )
Так в расте так же
источник

EG

Emmanuel Goldstein in rust_offtopic
Бешеный Сапиенс
Да ещё и не на x64
У тебя unix-сокеты есть хоть на ARM
источник

БС

Бешеный Сапиенс in rust_offtopic
Alex Zhukovsky
например когда у тебя оказывается разработчик который под виндой разрабатывает, и ему надо локально запустить. Как тебе такой вариант?
Докер и контейнер 2020 год уже
источник

NN

Nikita Nazarenko in rust_offtopic
Emmanuel Goldstein
У тебя unix-сокеты есть хоть на ARM
на винде нет. там своя атмосфера, а для Ъ кроссплатформеров без винды - не жизнь
источник

B

Bogdan in rust_offtopic
господа, го в офтоп
источник

KR

Kai Ren in rust_offtopic
Nikita Nazarenko
так мне асинк и не нужен
ну а под синк никто сейчас веб-сокеты пилить и не будет... скажем так, что у тебя достаточно редкий кейс, потому и нет внятного типового решения в сообществе, что уже говорить про наличие в std.
источник

B

Bogdan in rust_offtopic
Лол не это ли тормоз тормозящий раст комюнити?
источник

NN

Nikita Nazarenko in rust_offtopic
Bogdan
господа, го в офтоп
мы и так в оффтопе
источник

B

Bogdan in rust_offtopic
Когда в чате про асинхронный раст на вопрос "что делать?" Говорят идите в офтопик
источник

B

Bogdan in rust_offtopic
У меня впечатление что кроме этого чата в раст эклстстеме постсовка жищни нет)
источник

KR

Kai Ren in rust_offtopic
Bogdan
Лол не это ли тормоз тормозящий раст комюнити?
Нет, не надо Дениса тормозом называть. Это всего лишь особенности ру-сообщества.
источник

БС

Бешеный Сапиенс in rust_offtopic
Emmanuel Goldstein
У тебя unix-сокеты есть хоть на ARM
Я про другое намекал
источник

B

Bogdan in rust_offtopic
Kai Ren
Нет, не надо Дениса тормозом называть. Это всего лишь особенности ру-сообщества.
Не дениса а собирательно модерацию в обоих группах
источник

B

Bogdan in rust_offtopic
В геймдеве, кстати, обсуждения бывают
источник