LINUX.ORG.RU

Cloudflare выпустила первый публичный релиз Pingora v0.1.0

 ,

Cloudflare выпустила первый публичный релиз Pingora v0.1.0

0

4

5 апреля 2024 года Cloudflare представила первый публичный релиз открытого проекта Pingora v0.1.0 (уже v0.1.1). Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare (вместо применения Nginx). Исходный код Pingora опубликован на GitHub под лицензией Apache 2.0.

Pingora предоставляет библиотеки и API для создания сервисов поверх HTTP/1 и HTTP/2, TLS или просто TCP/UDP. В качестве прокси-сервера он поддерживает сквозное проксирование HTTP/1 и HTTP/2, gRPC и WebSocket. Поддержка HTTP/3 — в планах. Pingora также включает в себя настраиваемые стратегии балансировки нагрузки и аварийного переключения. Чтобы соответствовать требованиям и безопасности, он поддерживает как широко используемые библиотеки OpenSSL, так и BoringSSL, которые соответствуют требованиям FIPS (федеральных стандартов обработки информации США) и пост-квантового шифрования.

Помимо этих функций, Pingora предоставляет фильтры и обратные вызовы, позволяющие пользователям полностью настраивать то, как сервис должен обрабатывать, преобразовывать и пересылать запросы.

В рабочем режиме Pingora обеспечивает плавный перезапуск без простоев для самостоятельного обновления, не теряя ни одного входящего запроса. Syslog, Prometheus, Sentry, OpenTelemetry и другие необходимые инструменты наблюдения легко интегрируются с Pingora.

Возможности Pingora: использование Async Rust, поддержка HTTP 1/2 end to end proxy, TLS over OpenSSL или BoringSSL, gRPC и проксирование веб-сокетов, Graceful reload, настраиваемые стратегии балансировки нагрузки и аварийного переключения, поддержка различных инструментов мониторинга.

В версии Pingora v0.1.1 исправлены ранее обнаруженные ошибки, улучшена производительность алгоритма pingora-ketama, добавлено больше бенчмарков TinyUFO и тестов для pingora-cache purge, ограничен размер буфера для журналов ошибок InvalidHTTPHeader, а также исправлены опечатки и внесены необходимые исправления в комментариях и документации проекта.

>>> Подробности

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от theNamelessOne

А что там может быть размыто то ? Обычная фигня: наследование, полиформизм, инкапсу… есть или нет. Хз как это можно размыть, неважно как это реализовано.

mx__ ★★★★★
()
Ответ на: комментарий от rtxtxtrx

Cloudflare банкротиться собрался?

Учитывая как жёстко у них упало качество сервиса - вполне. Они в том году выперли тонну продаванов и прочих csm, и теперь там сплошной цирк, поддержка шлак, цены вверх, постоянно лажают то там то тут. Ну, это с позиции enterprise клиента, для частников мало что изменилось

upcFrost ★★★★★
()
Ответ на: комментарий от mx__

Это значит, что в ядре Линукса ещё недостаточно Rust и ядро пока предоставляет только unsafe интерфейсы.

Но не волнуйся, в будущем ядро перепишут на Rust и выкинут сишечку как устаревший и ненужный язык программирования.

WatchCat ★★★★★
()
Ответ на: комментарий от WatchCat

А может rust отомрет ? Вы что реально думаете что язык классический, со стандартами, за которым стоят Ричи, Страуп и многие другие, уступит место какому то rust ? От создателй браузера ? Как то все странно.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Ты упоротый что ли? Тебе раз десять объяснили, в том числе сишники, какие у сей есть проблемы, но как только проходит пару часов - у тебя это из головы вылетает, и всё начинается по новой.

Сишке уже 50 (!) лет. За это время было изобретено и перепробовано множество новых концепций, избавляющих от ошибок и упрощающих работу. Очевидно, что сишка никуда не денется, но чем больше кода будет писаться на безопасных языках - тем лучше.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Сишке уже 50 (!) лет. За это время было изобретено и перепробовано множество новых концепций, избавляющих от ошибок и упрощающих работу.

Я тоже иногда не понимаю, колесу сколько лет ? Да нет до сих пор на колесах ездят а давно уже пора летать над дорогой.

Про англ. язык я просто промолчу.

И взять тот же си, в нем за 50 лет много че поменялось, вон постоянно стандартизируют тот же с++, да нет появляется кучка каких то и давай пропихивать свой язык, мол он очень безопасный и т.д. а давай те на него все перепишем, и вот спустя 5-10 лет другая кучка и давай опять на него все переписывать :(

P.S. Обратите внимание, я ВАС не как не называю, у ВАС свое мнение, у меня свое. Вы не считаетесь с моим я с Вашим так что это нормально. Но зачем обзываться я не понимаю.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

колесу сколько лет ?

Самый дебильный аргумент. Колеса у тебя что, цельные, как в неолите? Или всё-таки велосипедные на спицах, автомобильные с нецельным диском, из таких-сяких сплавов, с резиной?

Про англ. язык я просто промолчу.

Se wisa suigað, oð he ongiet ðæt him bið nyttre to sprecanne.

Вы

понятно.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 3)
Ответ на: комментарий от mx__

Я тоже иногда не понимаю, колесу сколько лет ? Да нет до сих пор на колесах ездят а давно уже пора летать над дорогой.

С такой логикой ты должен прикрутить каменные колеса к своей тачке и выбросить богомерзкую резину.

Про англ. язык я просто промолчу.

Он тоже не менялся все эти столетия, я правильно понимаю?

в нем за 50 лет много че поменялось

В нем как раз мало что поменялось за 50 лет. Убрали самые бестолковые ограничения, добавили всякой всячины типа stdatomic, а в основном это всё тот же язык, что и 50 лет назад.

давай пропихивать свой язык, мол он очень безопасный

А по существу есть что возразить? Да, безопасный и закрывает значительную часть источников CVE.

Вы не считаетесь с моим

Потому что я на си пишу постоянно и прекрасно понимаю его ограничения. Некоторые конкретно так вымораживают. А ты теоретизируешь, в основном.

liksys ★★★★
()
Ответ на: комментарий от liksys

Про язык и резину Вы понимаете что даже ВЫ указываете что нужно менять и дорабатывать СУЩЕСТВУЮЩИЙ а не изобретать что то новое.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Так почему сишку не доработают никак? Ты думаешь, что тебе одному такая идея в голову приходила?

Спойлер: обратная совместимость. Чтобы избавиться от родовых ошибок C, нужно внести столько ломающих изменений, что в результате ты и получишь совершенно новый язык.

theNamelessOne ★★★★★
()
Ответ на: комментарий от mx__

Не отомрет. Rust придуман чтобы можно было вместо того чтобы искать высококлоассных программистов согнать несколько тысяц быдлокодеров в Бангалоре или Мумбае где они за миску риса и науку будут писать неэффективный кривой код - но благодаря safe фичам раста этот код не будет адово падать и течь на память. А кривость кода соответственно скомпенсируют более мощным железом.

Ничего нового, все как обычно. Не помню особого энтузиазма Линуса на тему включения ржавого в ядро - но бизнес есть бизнес, и корпорации - те самые в интересах которых заменить дорогих парней из долины на дешовых в жаркой южной стране себе эту опцию таки продавили. Ну это что касается ядра.

Ну а по собственно топику - раст придумали в мозилле и он собственно заточен на все эти веб штуки. Так что делать вебовый фреймворк на расте - ну тут сам б-г велел, это же не ядро ОС и тут какого-то взаимодействия железом и памятью на нижнем уровне не надо. Будет тупить - ну да будет, скорее всего, зато дыр будет меньше. Тупёж скомпенсируют железом, стоимость железа - дешевизной раработки.

Qui-Gon ★★★★★
()
Ответ на: комментарий от mx__

Нет конечно, Сишечка как и Фортран полностью не умрёт. Да что там говорить, вон Кобол до сих пор жив.

Но ареал обитания Сишечки будет сужаться и сужаться. И останется только внутри жуткого эмбедеда, где программисты пытаются в 512 байт разместить ответ на главный вопрос жизни, вселенной и всего такого. А нам в наследство останется сишечное abi, для взаимодействия между разными языками.

Впрочем глядя на ответ на вопрос одного упоротого сишника «а может ли Rust в нулевой рантайм», я не уверен, что и там Раст не подсидит Сишечку.

WatchCat ★★★★★
()
Последнее исправление: WatchCat (всего исправлений: 1)
Ответ на: комментарий от liksys

Наклей резину на каменные колеса и ездий.

Извините я не хочу ВАС обидеть, Вы что Тролль ? Я все расписал, про новое устройство, про модернизацию старого и т.д.

Я не понимаю почему ВЫ это пишите здесь ? Что ты не сделай с колесом оно остается все тем же колесом, крутящий момент на оси.

mx__ ★★★★★
()
Ответ на: комментарий от Qui-Gon

Хм. Мне это даже в голову не приходило, согласен, типа если компилятор Rust собрал то это уже что то значит … Да в Си с этим труднее. Где здесь на форуме я писал про отличие кодеров (думающих что они программисты) от настоящих программеров, согласен, с Rust будет проще контролировать кодеров. Пусть они в начале компилятор победят(обманут).

Помню у меня как то не собирался ruby, поглядел код, там лепил варнинги rust, почитал инет и оказывается что бы компилятор не делал там варниги нужно выше всавить какую то строку. Вставил, собралось. Если бы я собирал не системой сборки то это фигня и так пролетела бы.

Что касается ядра, я верю Торвальдса и думаю он дальше коврика в прихожую, rust не пропусти в ядро, время покажет.

mx__ ★★★★★
()

К слову о cloudflare: я уже полторы недели не могу заходить на сайты, защищенные этими чуваками, потому что капча очень сложная. Помогает только accessiblity… И то криво.

И я не через VPN, не через Tor, а через public ipv6 захожу. Короче, теперь, если вижу плашку cloudflare, закрываю сайт и домен в /etc/hosts 0.0.0.0.

realbarmaley ★★
()
Последнее исправление: realbarmaley (всего исправлений: 1)
Ответ на: комментарий от WatchCat

И останется только внутри жуткого эмбедеда

В современном эмбедеде, ей тоже уже нет места

что и там Раст не подсидит Сишечку.

так уже ), честно говоря её там кто только уже не подсидел

А нам в наследство останется сишечное abi

тоже кстати говно, но да, продержится долго

zurg
()
Ответ на: комментарий от mx__

Потому что ты пишешь чушь. Тебе несколько раз все объяснили, но ты ни шиша не понял и продолжаешь повторять бредни под колесо.

Процедурный язык остаётся процедурным даже с трейтами и прочими наворотами.

liksys ★★★★
()
Ответ на: комментарий от mx__

я писал про отличие кодеров (думающих что они программисты) от настоящих программеров

Кодер/Программист это устаревшая терминология. Сейчас дихотомия Программист/Разработчик. Разработка включает в себя программирование, архитектуру, навыки взаимодействия в комманде.

UPD:

Сейчас кодеры не нужны, есть высокоуровневые языки и мощности для их исполнения. Раньше когда у Ассемблера и Си особых альтернатив не было, да нужны были «наборщики» которые занимались хитросплетением кода освобождая программистов от рутины.

Еще раньше были подразделения специалистов которые в ручну заменяли вышедшие из строя БИТЫ(!) в памяти ЭВМ.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от liksys

Когда человек обвиняет другого в том что он пишет чушь, причем сам свое творение чушью не считает. Это нормально, было бы странно если бы было бы наоборот.

mx__ ★★★★★
()
Ответ на: комментарий от lbvf50txt

Сейчас кодеры не нужны, есть высокоуровневые языки и мощности для их исполнения. Раньше когда у Ассемблера и Си особых альтернатив не было, да нужны были «наборщики» которые занимались хитросплетением кода освобождая программистов от рутины.

Ну я живу в другом мире, вокруг меня много кодеров, они без инета строчки не напишут, и изрекают по их мнению «умные» слова, паттерны проектирование и т.д. и в совершенстве овладели функцией copy-paste.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Ну теперь кодеры эволючионируют еще глубже. Чат-гэпэтэ а ну гнапиши мне порограмму на раст… И вот она, вот она, на кое чем намотана. Ко всеобщей радости производителей железа. Теперь нам в окошке html страничку отрисовать требуется большая вычислительная мощность чем была у всей земли во времена лунной программы.

Вот и вопрос - прогресс это или адская деградация? Пожалуй только наличие всяких встроенных систем в которых за «это не моя программа говно, это вам надо купить новый компьютер» можно огрести канделябром еще как-то поддерживает уровень профессионализма. Остается только надеяться на спиральное развитие прогресса - какие возможности предоставит раскачанное дурачками железо когда попадет в правильные руки.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Теперь нам в окошке html страничку отрисовать требуется большая вычислительная мощность чем была у всей земли во времена лунной программы.

А виноват, конечно, раст, ведь все браузеры написаны на нём?

Впрочем, неявное подразумевание, что программа на расте будет заметно медленнее сишной или цппшной, тоже было бы неплохо обосновать.

unC0Rr ★★★★★
()
Последнее исправление: unC0Rr (всего исправлений: 1)
Ответ на: комментарий от unC0Rr

Удивишься - даже лис на нем не написан. Так куски. Все что нуждается в работе с железом и где важна производительность - на плюсах.

Раст лишь инструмент общей тенденции - таких растов вагон и телега в каждой конторе. Смысл их также вполне себе одинаков - чем искать или обучать людей способных что-то программить на универсальном языке создают недоязык под свой собственный проект. По быстрому натаскивают дешовых слонопасов кодить на этом поделии - и вуаля, проект движется. Дубовость спецязыка не позволяет кодерам разгуляться от общей линии партии и с очень высокой вероятностью плюшки будут выловлены компилятором. Вот например 1С -ну чем не язык, можно любую бухгалтершу Маню усадить и никакого тебе core dump не увидишь. Давайте может Линусу предложим - раз раст в ядро включили чем 1С хуже. Сразу все проблемы С похороним. Ну и ядро за компанию.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Я тебя расстрою, но работа программиста заключается не в бездумном наборе кода, и никакой язык не спасет от работы головой. Сложность написания системного и ядерного софта заключается в знании собственно системы и сопутствующих низкоуровневых протоколов, и хоть какой язык сюда ни вставь - никак ты высококлассных спецов не заменишь.

Собственно, вы оба несете чушь, нифига не понимая в теме вопроса. Отсюда и иррациональный хейт к расту.

liksys ★★★★
()
Ответ на: комментарий от mx__

Извините Вы забыли добавить «А я понимаю в отличие от тебя».

И обозвать земляным червяком. Дабы соблюсти традиции.

Qui-Gon ★★★★★
()
Ответ на: комментарий от liksys

нифига не понимая в теме вопроса. Отсюда и иррациональный хейт к расту.

Опять по кругу, ясно что с твоей точки зрения я не понимаю а ты понимаешь. И еще раз повторяю, было бы удивительно что если бы Вы писали наоборот.

Думаю время нас рассудит. Если Rust взлетит и про С/C++ забудут то правы ВЫ. Если забудут про Rust то прав я. Подождем …

mx__ ★★★★★
()
Ответ на: комментарий от Qui-Gon

Дубовость спецязыка не позволяет кодерам разгуляться от общей линии партии

Да. Именно так. Код в проекте должен быть читаемым и понятным. По этому даже очень богатые языки урезаются линтерами.

Это и есть раница между программированием и разраработкой. Вот пример Perl идиальный язык для программирования, можно очень быстро и коротко писать собственные скрипты. Но для разработки он не подохдит, выбирается более предсказуемый Python.

lbvf50txt
()
Ответ на: комментарий от mx__

Если Rust взлетит и про С/C++ забудут то правы ВЫ.

  1. Rust уже взлетел выше некуда.
  2. Си не забываем, так как на нем написаны все учебники по Операционным Системам. Даже если вы не собираетесь писать на Си ни строчки, все равно выбора для изучения устройства ОС нет. И плюч еще ряд параметров: легкость написания компиляторов, нулевой рантайм.
lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от Qui-Gon

Все что нуждается в работе с железом и где важна производительность - на плюсах.

Не «всё, что нуждается и где важна», а всё, что не успели переписать. Рендеринг уже на расте, многие части переписаны на расте, потому что это позволяет поднять производительность среди прочего.

таких растов вагон и телега в каждой конторе

Чем раст вообще подходит под дальнейшее описание? Он универсальнее цпп и тем более Си - от фирмварей до веббэкендов и движков 3д.

unC0Rr ★★★★★
()
Ответ на: комментарий от liksys

Отсюда и иррациональный хейт к расту.

Надо пописать на Си в режиме ограниченного времени, когда как это обычно происходит у заказчика: «надо было чтоб работало год назад».

После чего не будет столь негативного отношения к новым языкам.

lbvf50txt
()
Ответ на: комментарий от mx__

Если забудут про Rust то прав я. Подождем …

Rust уже не забудут - он вылез из мозиллова гнезда и разползся. Ну да пусть себе ползет.

Отсюда и иррациональный хейт к расту.

Вшивый о бане. Все хейт мерещится. Я же кажетсчя выше писал что для данного проекта раст уместен ибо для этого собственно и создан.

Если Rust взлетит и про С/C++ забудут

Да да - мечты растоголовых во многом близки к мечтам гномеров. Всем навязать один язык, одно ДЕ, одеть в серую униформу и пришпилить значок с Биллом Гейтсом. Но не выдет. Сейчас вот это растофанатсво уляжется - и он вернется в свою нишу. И это не написание ядер ОС и драйверов - уж кто кто а разрабы мозиллы который раст и породили не особо усираются писать на нем рендерер и разные там кодеки продолжая делать железо-ориентированные части кода на более пригодных для этого плюсах

Qui-Gon ★★★★★
()
Ответ на: комментарий от lbvf50txt

Rust уже взлетел выше некуда.

В смысле некуда ? Дальше уже не продвинется ?

Вот что интересно, я юзаю кучу прог на С/C++, Python, Java даже куча прог на Go, но нет ни одной проге на Rust. Хотя нет вру, вроде Gnome-Tour (хотя там какой то вроде новый gnome был а у меня старый) была на Rust, и если это его взлет то как то странно.

mx__ ★★★★★
()
Ответ на: комментарий от lbvf50txt

Надо пописать на Си в режиме ограниченного времени, когда как это обычно происходит у заказчика: «надо было чтоб работало год назад».

Если ядро линукса начнут писать по этому принципу говнокодерства - то придет время переходить на BSD. Но пока жив батька Линус говнокодерство не пройдет.

Qui-Gon ★★★★★
()
Ответ на: комментарий от unC0Rr

Ну в популярность питона все на питоне писали. Теперь вот на расте пишут. А чего еще делать толпе плохо обученных и ничего кроме раста не знающих слонопасов кроме как умело продавать свои навыки заявляя вот это

Он универсальнее цпп и тем более Си - от фирмварей до веббэкендов и движков 3д

так и появляются кривые фимвари, никуда негодные движки 3д и при этом вполне себе недурственные веббэкенды. Ибо дерево рубить топром - это дело, а вот рубить топором жидкое говно - себе дороже

Не «всё, что нуждается и где важна», а всё, что не успели переписать

Не надо тут нести чушь с важным видом. Переписали то что нужно переписать. А что не нужно переписывать - оставили в изначальном виде. В сторону основного html/js движка смотрит rust прослойка , под капотом C++. и продолжают ее дорабатывать и оптимизировать.

переписаны на расте, потому что это позволяет поднять производительность среди прочего

Производительность кодеров - несомненно. Во всем остальном - когда вам надо управлять DMA контроллерами и прерываниями в железе раст это топор на жидкое говно. и unsafe, и неудобно и долго и криво.

Qui-Gon ★★★★★
()
Ответ на: комментарий от mx__

Нет никакой точки зрения. Есть факт того, что ты не понимаешь, о чем говоришь. Даже после многократных объяснений.

liksys ★★★★
()
Ответ на: комментарий от Qui-Gon

Вот Вы пишите, что rust это про веб, лично я удивлен этому. А можете пример (кроме сабжа) этого дела. Я всегда думал что для web go, и для меня то что rust для веб это - неожиданно. Prometeus, Karma, Grafana и куча подобного все go, вот мне и интересно а rust где ?

Как я писал ранее, реально работающего на rust я видел только - https://gitlab.gnome.org/GNOME/gnome-tour.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 3)
Ответ на: комментарий от Alphaer

На rust писать - лечиться нужно

Подобные примеры ХелоВордов являются банальным жульничеством для обывателей. Это все равно, что кататься на грузовике с фурой по футбольному полю и обсмеивать грузовик за неповоротливость.

lbvf50txt
()
Ответ на: комментарий от Alphaer

По существу есть что возразить, или только чувственные возгласы будут?

liksys ★★★★
()
Ответ на: комментарий от zx_gamer

И вы на полном серьезе считаете, что в Rust не нулевой runtime?

Дело не в Runtime, а в GC. Сборщик мусора запускается и отчищает память на это тратится время. Если обходиться без сборщика мусора то люди забывают отчищать память и трятят время на отладку.

Rust предлагают идею как обходиться без сборщика мусора и без отладки. Новая концепция заема памяти.

lbvf50txt
()
Ответ на: комментарий от lbvf50txt

Опять-таки. Давным-давно придуман RAII и «умные указатели». Кстати, что забавно в Rust есть «умный указатель» и называется он box. Вот только проблема, в том, что вместо передачи параметров по указателю (ссылке) используются дурацкая семантика перемещения.

Грубо говоря, как будто в C++ каждый аргумент кастуется к перемещающей ссылке («rvalue reference» в «С++11») по умолчанию. Бред ведь?

А когда говоришь, что нельзя (ЭЛЕМЕНТАРНО!) передать один объект в две функции, тебе говорят «тут надо над архитектурой думать» = изобретать костыли.

Дорогие растофанатики, понимаете, примерно 100% ЭВМ в наше время — машины с Фон Неймана с аппаратной поддержкой стека (а в некоторых случаях даже нескольких стеков), которые спроектированы таким образом, чтобы было легко работать со стековыми фреймами. Вы же придумали какую-то чушь, которая не вяжется с ЖЕЛЕЗОМ. Идиоматическая сущность языка просто не предполагает, что Rust будет исполнятся на типичной вычислительной технике. Да, язык конечно работает, но чтобы использовать возможности ЖЕЛЕЗА он весьма не очевидными преобразованиями приводит «магический» код к коду для стековой машины, и делает это, естественно, коряво. Более того, у всех нормальных программистов это такой мешанины просто взрывается мозг. (Я почти уверен, что если спросить у вас как та или иная сущность Rust будет выглядеть в машинном коде вы даже близко не сможете это представить)

zx_gamer ★★
()
Ответ на: комментарий от zx_gamer

всех нормальных программистов это такой мешанины просто взрывается мозг

Вы смешиваете разные уровни. На 2024 год есть огромный пласт высокоуровнего программирования, где не думаю о низкоуровневом программировании. Это не значит, что код не оптимиируют и не отлаживают, но делают это с другой степенью детализации.

Скорее вы говорите о программировании микроконтроллеров, чем о программировании сервисов, приложений и утилит.

Вы говорите о канальном уровне, когда разработка идет на транспортном уровне и выше (если говорить в системе OSI).

lbvf50txt
()
Ответ на: комментарий от zx_gamer

Идиоматическая сущность языка просто не предполагает, что Rust будет исполнятся на типичной вычислительной технике.

Туда же можно приписать всех потомков Lisp (включая JS), а так же Haskell.

lbvf50txt
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.