Компания Cloudflare опубликовала первый выпуск фреймворка Pingora, предназначенного для разработки защищённых высокопроизводительных сетевых сервисов на языке Rust. Построенный при помощи Pingoraа прокси около года используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust и опубликован под лицензией Apache 2.0...Подробнее: https://www.opennet.me/opennews/art.shtml?num=60953
Почему не го?
gc? нафик...
Спасибо, что не ждава или пухтон.
Памяти го все таки поболя жрет, особенно если попадаешь на плохой для ГЦ паттерн использование памяти. Но как язык в сто раз проще и приятней, да и комьюнити не клуб ненависти
есть какие-нибудь вменяемые статьи\сравнения? не просто уровень первого результата google rust vs go
Есть только опыт c++ VS go. На мой взгляд можно аппроксимировать и rust VS go.
если в теории - часто и много выделять память в го больно. ГЦ не успевает очищать память, т.к. освобожденное нельзя переиспользовать сразу. В плюсах подобное приводит в дефрагментации, но оно лечится кастомными аллокаторами, меморипулами и т.д.
В плюсах нет гц, ты о чем? Память там удаляется тогда, когда ты сказал ее удалить
я про частые и множественные выделения памяти в го и плюсах. ессно в плюсах штатного гц нет (хотя можно сделать :) )
В С++ нет встроенного GC но никто не запрещает подключить свой если нужно, к примеру SGCL.
Он действительно прост, но никак не приятен. Я чуть не обблевался, когда пытался на нём что-то писать. Раст в этом смысле гораздо, гораздо лучше. Хотя и намного сложнее, да.
Поэтому что го непредсказуем из-за гц
Почему не эрланг?
Эрланг медленный. Больше серверов - больше расходов. Для CloudFlare разница значительная
> Эрланг медленный. Больше серверов - больше расходов. Для CloudFlare разница значительнаяДля перекладывания байтиков норм.
> Почему не эрланг?неэффективный функциональный недоязык, кому он нужен-то!
Наше будущее - за OCaml! (как только оба разбирающихся в нем специалиста вернутся из творческого отпуска для успокоения нервов, куда отправились после неудачной попытки исправить две строчки в sks keyserver)
>Наше будущее - за OCaml!Держи краба, пох. Если ты, конечно, не прикалываешься. Я тоже стал склоняться к такой мысли. Вот его и надо было Мурзилле использовать для Servo.
>Держи крабаУгу окамлисты так и не дождались многопоточки и породили краба.
В Сишку тоже многопоточку не завезли. Однако, это не мешает писать на C многопоточные программы. Если что, многопоточность в libpthread.
> В Сишку тоже многопоточку не завезли.В OCaml в отличии от си есть gc что тянуло за собой рантайм, плюс нетривиальная модель памяти https://v2.ocaml.org/manual/memorymodel.html , и так просто библиотекой вопрос не решался, и там был свой аналог GIL как в питоне, то есть потоки есть, но рантайм не давал исполнять одновременно больше одного потока.
В OCaml 5.0 настоящую многопоточность наконец добавили (http://ocamlverse.net/content/parallelism.html), но замороченость там повыше чем в posix threads или std::thread.
>Наше будущее - за OCaml!Сделали бы многопоточность не два года назад, а лет 10 - 15 назад, да мог бы занять гораздо более широкую нишу.
>> Почему не эрланг?
> неэффективный функциональный недоязык, кому он нужен-то!Расскажи это Максу Лапшину.
> Наше будущее - за OCaml!
Будущее за Racket 😎
> (как только оба разбирающихся в нем специалиста
> вернутся из творческого отпуска для успокоения нервов, куда отправились после неудачной
> попытки исправить две строчки в sks keyserver)Что за драма?
> Что за драма?https://www.opennet.me/opennews/art.shtml?num=51006
И ты ни за что не догадаешься КАК они исправили этот баг!P.S. очень интересно... гугль с нескольких попыток не смог ничего на эту тему найти. Говорите, нет там цензуры?
так получилось. но вообще как я понял го не очень подходил для решения ботлнека с которым они столкнулись при использовании нгинкса. по хорошему они бы писали это на си, но сейчас если у тебя есть что-то что хорошо пишется на си это надо писать на расте.
А где ж обещаный сервер на базе этого чудо-фреймворка?
Товарищ уходил думать концпетьюальный дизигн - так и не вернулся?
Это фреймворк из которого сервер и делается. Соединяешь трейтики-кирпичики – получаешь нужный сервис.
Смекаешь?
> Это фреймворк из которого сервер и делается.и как, много ты серверов из него уже понаделал?
Пока что это бесполезный фреймворк, на котором вообще никакого сервера не существует. (сказания что внутри мордокниги вот этот самый код собран вместе с волшебным сервером, который вот только...нельзя никому показать - можешь свернуть трубочкой и засунуть себе в то место которым думаешь)
Зато есть восторженные отзывы о невидимых узбеках. Ну ок...
Не мордокниги а Cloudflare.
Так это ж Нах))
Ему что мордокнига, что клаудфаря.
Сейчас еще немного набухается и будет про рабов и кнутователей рассказывать.
> Не мордокниги а Cloudflare.один хрен. Обе уже славны выкладыванием того что не собирается, не работает, и нахрен никому в таком виде не нужно.
"Но зато в сто раз луччше nginx!"
лучше не лучше, но один конкретный ботлнек для одной конкретной ситуации закрывает. а нужно это кому-то ещё или нет смотрите сами бесплатно и код открыт под удобной лицензией.
> лучше не лучше, но один конкретный ботлнек для одной конкретной ситуации закрываетвполне возможно, что да (а вполне возможно что были и попроще способы - просто клаудшмаре нужен хайп). Вот _это_ проверить - не получится.
> а нужно это кому-то ещё или нет смотрите сами бесплатно и код открыт под удобной лицензией.
так нет же кота.
https://github.com/memorysafety/river
На CoC и readme.md далеко не уедешь.
Правильно! Кто такие Cloudflare, чтобы им верить?То ли дело эксперт нах. с опеннета, что видит всех насквозь! Не скрыть от него правду, не обмануть сладкими речами!
> Правильно! Кто такие Cloudflare, чтобы им верить?распространители скама, fud, а в прошлом просто крышеватели ддосеров. А может и не только в прошлом.
Действительно, чего это им не верить! Не по делам же их судить (когда пообещали что выделили целого чувака показать всем как нада писать сервер, но... он почему-то где-то прое...лся)
Вот и местный эксперт, считающий что собрать из недоделка выкинутого на шитхаб рабочее нечто - как два пальца - подтверждает. Жаль собрать только ничего никогда не соберется.
> распространители скама, fud, а в прошлом просто крышеватели ддосеров.Ты оцениваешь технические компетенции по шкале морально-этических принципов? А ты хорош!
> местный эксперт, считающий что собрать из недоделка выкинутого на шитхаб рабочее нечто - как два пальца - подтверждает
"Фантазер, ты меня называла.
Фантазер, только этого мало!"
Я оцениваю скам, fud - по шкале скама и fud'аА работающий сервер - оценю, когда и если он будет. Но уже с поправкой на предшествовавшие ему scam/fud.
Ну и да - твой слив засчитан, можешь дальше не юлить. Ничего ты не соберешь, разумеется.
> Я оцениваю скам, fud - по шкале скама и fud'аА как ты оцениваешь качества своего паспорта?
Не могут же хорошие люди быть с плохим паспортом?> А работающий сервер - оценю, когда и если он будет. Но уже с поправкой на предшествовавшие ему scam/fud.
Ну, у них он работает "прокси около года используется в сети доставки контента Cloudflare вместо nginx".
Тебе правда его не дадут, а вдруг сломаешь!
пох., дружище, ну что же ты так...Всю веру в адекватных троллей рушишь. После такого и жизнь не мила (
Когда ты первый раз заговорил про сервер, это выглядело как приглашение к светской беседе. Второй раз это вызвало некоторое недоумение.
Но сейчас, твоё настойчивое желание увидеть живой сервер, вызывает крайнюю степень беспокойства за твоё психическое здоровье. Особенного с учётом того, что примеры серверов есть на гитхабе.Или, после просмотра кода на раст, у тебя отнимаются ноги и ты не рискуешь подобное практиковать?
Заявлять> Пока что это бесполезный фреймворк
после строки:
> Построенный при помощи Pingora прокси около года используется в сети доставки контента Cloudflare вместо nginx и обрабатывает более 40 млн запросов в секунду
Да ты просто гений логики!
> распространители скама, fud, а в прошлом просто крышеватели ддосеров. А может и не только в прошлом.
Значит отменные сетевые специалисты. Значит хороший фреймворк. "Надо брать" (ц)
Много кому будет очень даже на пользу фреймворк, позволяющий построить систему, более безопасную и не менее быструю, чем нгинкс. Для многих будет важен один единственный побудительный мотив для такой замены - написано на расте, а не на дырявой сишке.
Крутой проект.Во-первых, проверенный в проде и именно на нормальных нагрузках, а не на подкроватном серваке каким-то васяном.
Во-вторых, правильная лицензия. Правда тут с nginx паритет.
В-третих, тут соседи посчитали, что на 30k всего 61 unsafe, из которых минимум 22 - FFI с сишными либами, вроде OpenSSL, а остальные лень смотреть.Ну и самое большое достоинство - современный язык, который помогает программистам писать с меньшим количеством ошибок.
>> язык, который помогает программистам писать с меньшим количеством ошибок.больше думать эти "погромисты" не пробовали?
Думанье, как и внимание, ресурс лимитированный.
Его нужно тратить с максимальной пользой.
И просчитывание владения в уме для тысяч переменных - явно не входит в эту категорию.Вот сишники 30+ лет пытаются думать, но что-то не выходит каменный цветок.
То use-after-free (https://www.opennet.me/opennews/art.shtml?num=60891), то за пределы буфера (https://www.opennet.me/opennews/art.shtml?num=60927).
И живут же по десятку лет!
> Думанье, как и внимание, ресурс лимитированныйпроблемы гуманитариев - проблемы гуманитариев, зачем проблемы умственно отсталых на техническом ресурсе? идите в репу раста
щас бы тратить самое ценное что есть у разработчика тоесть время на бесполезные понты..
>больше думать эти "погромисты" не пробовали?Ну самые коварные сишные ошибки же не исчезнут от прокачки навыка "думать", тут надо прокачивать навык "внимательность", но практика показала что таких сверлюдей просто не существует.
> вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке RustЭто, кстати, все благодаря линуксу и его сетевой подсистеме, написанной на C
>> вместо nginx и обрабатывает более 40 млн запросов в секунду. Код написан на языке Rust
> Это, кстати, все благодаря линуксу и его сетевой подсистеме, написанной на CНа том самом которому можно сказать спасибо за такие отвратительные уязвимости
"Удалённо эксплуатируемая уязвимость в драйвере NVMe-oF/TCP из состава ядра Linux"
https://www.opennet.me/opennews/art.shtml?num=59940
приводит к обращению к уже освобождённой области памяти (use-after-free) и двойному освобождению памяти (double-free)"Уязвимость в драйвере NTFS-3G, потенциально позволяющая выполнить код с правами root"
https://www.opennet.me/opennews/art.shtml?num=58016
переполнению буфера ... при монтировании пользователем образа или накопителя, подготовленного атакующим, или при подключении к компьютеру USB Flash"Уязвимость в Linux-драйвере exFAT, позволяющая поднять привилегии в системе"
https://www.opennet.me/opennews/art.shtml?num=59664
.... и тдДырявые адепты СИшки даже строку сплитнуть без уязвимости не могут
https://opennet.ru/opennews/art.shtml?num=60490
Use *BSD
Так они тоже написаны на си.
можно подумать в ядре на расте меньше проблем будет, порог входа то ниже
Скорее вопреки.
Благодаря С приходится использовать unsafe, ибо ядро со своей сишкой нифига не гарантирует
Толсто накинул. Утритесь ребята! В GNU/Linux все так быстро благодаря электричеству, а не Си-шке.
Там скорость сильно зависит от того, в каких чипах это электричество бегает.
При всей её безопасТности, у Pingora хоть лицензия получше, чем у Nginx.
Было бы клёво собрать на нём Kubernetes Ingress. Ощущение, что может быть прям очень клёвым решением.
чем бы дитя ни тешилось, лишь бы своими кривыми руками в нормальные проекты не лезло