Comments 16
Ни███ не понял, но очень интересно!
Бенчмарков, как в любом тексте о величии раста, категорически не хватает. Какую нагрузку оно выдержит?
В coreutils на расте (oxidized) хэширование (sha256 например), внезапно, медленнее чем обычный coreutils. Как попробовать самому: https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995
'внезапно'? на C быстрее чем на расте. Вы серьезно? Хоть где-то утверждалось, что чистый С должен быть медленнее раста?
Не должен, но так заявляли сами авторы этой инициативы. The goal is to offer what he said are more secure, and more performant drop-in replacements for the tools Linux users depend on. Я не настоящий программист, в тему не погружен. Увидел concern о бенчмарках раста, вспомнил эту историю.
Вы сравниваете линукс утилиту, которую кому-то захотелось переписать (C vs Rust), и приложение, использующие общие с утилитой библиотеки (Rust vs что?). Ну и в целом, опенсорс концепт с претензиями - нету бенчмарков!
Это не претензия, это намёк. Я привык к опенсорсу с бенчмарками.
Я привык, чтобы за работу платили, или хотя-бы доброе слово -'спасибо'. Но, где-ж, даже звездочку на гитхабе не кликнуть.
Вы бы его ещё троянским конем назвали
Что за дикое описание, как будто свечи от геморроя впаривают.
Автор, видимо, сам не понял, что хотел описать и в результате описал какую-то хрень, типа того, в каком файле хранит ключи. И вообще не важно, на каком языке написано приложение, пусть хоть Visual Basic будет, лишь бы работало.
Надо было описать:
Архитектуру (настоящую, а не эти 4 дурацких квадратика клиент/сервер/три_файла).
Протокол.
Есть Magic Wormhole - может "пробивать тоннель" между двумя клиентами за NAT-ом. Сервер использует для инициации, а затем уже прямая передача без использования сервера. Думал вы что-то подобное сделали.
Подтянулись импорта замещающие проекты . Инженерная мысль может расслабиться.
Зачем вам этот Websocket? Даже если нужна совместимость с браузером. Но это же костыль для HTTP/1.1, и сейчас, во времена HTTP/3 уже странно видеть его в новых проектах!
HTTP/3 (QUIC) устанавливает соединение на один RTT по сети меньше по сравнению с HTTP/2 и HTTP/1.1. Но Websocket работает только с HTTP/1.1, и этой оптимизацией воспользоваться не может.
Сама по себе обработка Upgrade — это ещё один лишний RTT по сети. Если, например, юзер написал сообщение находясь в офлайне, то при появлении интернета ему потребуется сначала дождаться Upgrade, а только потом послать сообщение. Уже в HTTP/2 это не нужно.
HTTP/3 (QUIC) позволяет прозрачно продолжать соединение при переключении с мобильного интернета на вайфай и наоборот, без повторной установки соединения. Для мессенджера это неплохая фича.
Сетевые задержки очень важны! Вы можете сэкономить пару миллисекунд за счёт того, что сервер написан на Расте, но потерять десятки и сотни миллисекунд из-за того, что выбрали устаревший протокол
Wormhole Messenger — минималистичный P2P-мессенджер на Rust с end-to-end шифрованием