【Перевод】Rust в производстве | Арройо: создан для упрощения работы инженеров по потоковой передаче данных
【Перевод】Rust в производстве | Арройо: создан для упрощения работы инженеров по потоковой передаче данных

недавно Rust in Production Podcast: Arroyo[1] Подкаст-шоу Приглашение на Arroyo корпоративный Micah Уайлд, чтобы рассказать, как они используют Rust Упрощенный способ управления потоком данных. Эта статья переводит содержание интервьюиз,Переводчик ChatGPT-4

Предыстория

arroyo[2] это Rust Реализован механизм обработки распределенных потоков, предназначенный для эффективного выполнения вычислений с отслеживанием состояния потоков данных. В отличие от традиционной пакетной обработки, механизмы потоковой обработки могут обрабатывать ограниченные и неограниченные источники данных и выводить результаты, как только они станут доступны.

В отличие от многих существующих потоковых движков, включая Apache Flink, Spark Streaming и Kafka Streams:

  • Бессерверные операции: Arroyo Pipeline предназначен для работы в современных облачных средах,Поддерживает плавное расширение, восстановление и перепланирование
  • высокая производительность SQL:SQL даан важно изсосредоточиться в точку, всегда с отличной производительностью. использовать SQL руководитьпотокиз Конвертировать、фильтр、полимеризацияисоединять,Результаты возвращаются за доли секунды.
  • Предназначен для неспециалистов: Arroyo четко отделяет API конвейера от его внутренней реализации. Строить реальном временные Pipeline Вам не обязательно быть экспертом в области потокового вещания.

У Arroyo хорошие связи с Kafka, Pulsar, Redpanda, Websockets и событиями, отправленными сервером, а результаты можно записывать во многие принимающие системы, включая системы потоковой передачи, такие как Kafka и Pulsar, системы объектного хранения, такие как S3, и такие системы, как Postgres, и базы данных, такие как MySQL.

Для получения дополнительной информации см. Документация Арройо[3]

Введение Мики Уайлда и Арройо

Micah Wylde да Rust Языковой инженер, также да Arroyo Основатель потокового движка. Арройо этов реальном времениданныеиметь дело сдвигатель,это позволяетданныеинженер Можетсуществоватьпотокданныеначальство,использовать Rust Пользовательские функции, написанные на языке, предназначенном для выполнения. SQL Запрос.

Примером может служить обработка данных, хранящихся в Kafka или других потоковых системах. Я начал работать над этим проектом и компанией после того, как пять лет возглавлял группы обработки потоковых данных в Splunk и Lyft, американском сервисе совместного использования поездок. В более широком смысле, я работал в сфере больших данных почти всю свою карьеру, начиная с рекламных технологий, работая над системами назначения ставок в режиме реального времени, до руководства группами данных и разработки систем данных.

существовать Splunk, раньше я был главным инженером, а также отвечал за команду потоковых вычислений. Можно сказать, что я вполне разбираюсь в потоковой обработке. Для тех, кто мало что знает об этой области, я могу кратко представить концепцию потоковой обработки. Традиционно обработка данных выполняется в пакетном режиме, то есть мы собираем данные из различных источников данных, будь то журналы, Существуют и другие формы запросов API, которые попадают в библиотеку данных.、данныесклад。

Как только все будет готово,Мы будем выполнять крупномасштабные изданные операции по обработке этих статических файлов. Обычно это означает, что вам нужно подождать час или даже день.,прямойприезжатьвседанныеприезжать Кусочек,Только тогда мы сможем начать анализировать и понимать соответствующую информацию. Потоковая обработка отличается,Дасуществоваданные фактически поступают в систему и одновременно обрабатываются.,То есть, давай сначала времени. очевидно,Преимуществом этого метода является его низкая задержка. Вы можете обработать данные за несколько миллисекунд и несколько секунд.,Вместо того, чтобы даждать несколько часовилинесколько дней。

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

Важность потоковой обработки для компаний, работающих в режиме реального времени, таких как Lyft

Для чего-то вроде Lyft В этом случае, в соответствии со спросом и предложением рынка, компания реальном Корректировка цен да имеет важное значение из. Все это требует умения быстро и комплексно анализировать данные, не дожидаясь целого дня, пока данные поступят в хранилище. Вот почему потоковая обработка должна решить основную проблему: Также Как это вписывается в эту потребность.

В технологии потоковой обработки нет ничего нового. В прошлом другие компании проделали большую базовую работу в этой области. Вы упомянули приехать раньше Hadoop и BigQuery,Это все основополагающие статьи, в которых упоминаются технологии прибытия.,Мы обсудим это подробно позже.

носейчассуществовать Я думаю кратко объясни,Почему Arroyo существование В этом есть что-то особенное, а Также В настоящее время то, чего не хватает другим конкурентам, может быть да Arroyo из Место возможностейсуществовать。BigQuery и Hadoop Все они относятся к режиму пакетной обработки, который позволяет накапливать данные, а затем выполнять крупномасштабную обработку статических данных. И существуют поля потока данных, традиционно самые популярные из системы. Apache Флинк, ему десять лет. Флинк да был первым, кто нашел подходящую модель программирования из системы для потоковой обработки, и был достигнут прорыв в корректности, позволивший решить Flink Многие предыдущие системы не могли справиться с вопросом вопросить. существовать Flink внесейчас До,У нас есть только несколько очень простых систем,Они не дают никаких гарантий правильности или полноты.,Более простые механизмы вокруг вашей собственной логики.

существую я из карьеры, я существовал Flink На работе. Я думаю, что большинство людей, которые в настоящее время занимаются инновациями, имеют аналогичный опыт. Для всех нас, Флинк существуют для тех, кто может приложить немало усилий, чтобы стать Flink Экспертные компании отлично справляются с решением проблем. Компанию, в которой я раньше работал, нужно было создать 10 приезжать 30 Команда людей, специализирующихся на Flink из Работа,Создавайте инфраструктуру и инструменты вокруг нее,Особая поддержка для конечных пользователей, которые фактически создают конвейеры потоковой передачи данных.

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

Мы усердно работаем над созданием системы,это достаточно просто,Любой учёный может легко начать,строить правильно、надежный、высокая производительностьизв реальном времениданныетрубопровод。

Связь между потоковой обработкой и механизмами рабочих процессов, такими как Windmill.

проситьИтак, что вы думаете о потоковой обработке и появлении новых потоковых движков (например, использования Rust написано Windmill[4] )? Как вы думаете, есть ли совпадение между этими двумя понятиями? Вы также думаете, что это совершенно разные профессиональные области?

отвечать:даиз,Я думаю, что потоковая обработка и Работа потокового движка сильно отличаются от системы.,Каждый из них специализируется на решении различных типов вопросов. Движок потоковой передачи данных идеально подходит для решения долгосрочных задач.,Например, он должен основываться на некоторых простых правилах.,существования Выполните серию Работа в течение дня. Например,Пользователям необходимо отправить электронное письмо после регистрации,отвечайте согласно им,Возможно, нам придется выполнить еще одну серию операций. А это дакартина Flink или Arroyo Это область, в которой механизмы потоковой обработки не очень хороши.

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

На самом деле это распространенная закономерность,Разрешение этим системам сотрудничать Работа. но по крайней мере существовать в ближайшем будущем,Я не думаю, что они будут в одной сфере.

SQL в реальном времени и необходимость расширений

просить:существоватьтыизвеб-сайтначальство,Вы показали хороший пример,тыделатьиспользовать Kafka поток, затем используйте SQL (возможно да Apache Arrow или похоже на грамматику, но похоже на SQL) для обработки событий в вашей системе и реальном Время Посмотреть результаты, это очень впечатляющая презентация. так Apache Arrow похоже на SQL из, или да другое? Если они разные, то в чем они отличаются? Итак, вы в основном да проходите SQL писать Arroyo процедурный.

отвечать:у нас есть мы самиизнекоторые диалекты,нонасиз Цельдакак можно большеи Postgres совместимый. Для выполнения в режиме реального времени SQL обработки, вам действительно нужно как-то ее расширить. Есть разные способы заставить приезжать. но оригинальное определение из SQL действительныйначальствода Предназначен для пакетных вычислений.из,Например, группировка, агрегирование и соединение. Вам нужно, чтобы все изданные были готовы. в противном случае,откуда вы знаете,существуют при выполнении операции соединения,В будущем может быть добавлено больше данных,Таким образом, вы не можете вернуть окончательный результат.

Различные варианты использования SQL Все системы потоковой обработки имеют свои собственные методы, определяющие, когда обработка может быть завершена, и возвращают результат для определенного выражения. существовать Arroyo середина,Мы используем оконную функцию, основанную на времени.,Например, скользящее окно, скользящее окно и окно сеанса. Эти функции основаны на концепции, называемой водяными знаками.,Это концепция, основанная на оценке и завершении. Отметка уровня воды имеет особое значение,Будут существоватьданные потоки в подающем трубопроводе.,и сообщить всем операторам,Мы наблюдали «прибытие» или «Мы думаем, что наблюдали «прибытие» определенное время назад из всех данных.

Это означает, что если у нас есть время существования t Конец из окна, и мы закрылись, чтобы жить t После этого водяной знак сообщает нам, что мы можем закрыть это окно, поскольку мы просмотрели все элементы в окне и можем обработать и вернуть результаты пользователю. Эта дакартина Flink и Arroyo Распространенная закономерность среди таких потоковых процессоров. Есть и другие способы, например Arroyo и Materialize Таким образом, система также поддерживает более инкрементальный метод расчета, который, как мы думаем, никогда не будет реализован.

Мы никогда не узнаем, получили ли мы все данные за определенный период времени. поэтому,Каждый раз, когда происходит событие,Мы все обновим статус окна,И существуют там публикуют новые результаты. поэтому,По названию просить из типа,тывозможныйпредпочел бы один SQL Стиль тот или иной. В любом случае, это SQL。

Историческая эволюция языков программирования систем данных

просить:ты Писать Понятно Статья под названием《Rust даданные ИнфраструктураизBest Language》[5] Из статьи это очень привлекательно по названию. Я прочитал этот пост и мне стало интересно, когда ты начнешь, Раст. Да, датыиз Первый выбор?тыда Вы задумывались об этом раньше?изрешение?

Также в то время Zig Да тоже стал популярным? Что вы думаете о себе в этой области? Ржавчина существовать Правильно из времени появилось? Или Вы скажете, что может быть другая реальность, например Arroyo использовать C++ илисуществовать используется в разных мирах Zig написано。

отвечать:отисторияначальствосмотреть,Самая ранняя версия системы такого типа.,например Google Оригинальные системы, которые во многом определили наше сегодняшнее представление о больших данных, такие как MapReduce、BigTable и GFS,Они всеиспользовать C++ написано。

Далее мы прошли период преимущественного использования Java Период, в течение которого пишутся системы данных, например. Hadoop и HBase。Flink первыйиспользовать Scala написано, позже изменено на Ява. Затем мы начали использовать Go язык, например, развитие CockroachDB и Некоторые другие большие системы данных. даиз, я думаю сейчас существования у нас точно не будет Arroyo выбирать Java или Идти. Во многом нынешнее развитие системы является отражением предыдущего использования. Java Размышления о системах письменности. Многие люди обнаруживают это, используя что-то вроде C++ или Rust Переписывание этих систем на такой неуправляемый язык может значительно повысить производительность и упростить операции.

Поэтому мы следуем существующему образу Red Панда (справа) Kafka из Перереализация)и ScyllaDB (справа) Cassandra повторная реализация) по следам такого проекта. Я думаю, мы можем использовать Java или Go После завершения некоторых дел, которые мы пытаемся сделать, достичь наших целей будет сложнее. **если не Раст, я думаю, в конечном итоге мы можем закончить выборами. С++**. но Мне очень повезло, что мы проживаем жизнь вместе Rust из мира. Это, несомненно, лучше, чем если бы нам пришлось выбирать C++ Переход на разработку облегчит нашу работу.

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

Проблемы передачи ссылок в C++

просить:мне любопытно,В вашем коде много частей, связанных с жизненным циклом?,или Этода Rust Вещи, которые полностью обрабатываются компилятором, поэтому вам вообще не нужно думать о проблемах жизненного цикла.

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

Позвольте мне дать некоторые архитектурные идеи. Эти системы выглядят как ориентированные ациклические графы (DAG). ты возьмешь один SQL заявление, составленное в SQL план,И затем, наконец, оптимизируйте его в этот граф потока данных. Каждый узел графа имеет какой-то возможный оператор состояния. Например,Выполнение фильтрации и сопоставления,или или окно дакартины, или что-то подобное из функции отслеживания состояния. существуют между этими операторами,После обработки событие передается через очередь и сетевой сокет.

существуют среди этих операторов с состоянием,Возможно, нам придется хранить данные в течение длительного времени. например,Если тебе 30 Это достигается за счет сочетания хранилища S3, кэша локального диска и кэша памяти. Управление этим кэшем памяти включает в себя проблему жизненного цикла приездаизпросить.,То есть, как управлять потоком данных из кэша в процессор для использования. Счастливая изда,Архитектура этих систем в определенной степени ограничивает эту проблему.

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

Rust и Lingua: типы и параллелизм

просить:поэтому,существовать Rust изтерминсередина,Это означает, что ваш тип не нуждается в синхронизации.,Или они не должны быть синхронизированы?

отвечать:верно。от逻辑начальство Приходитьсмотреть,Эти Операторсерединаизкаждыйдаодна нитьиз。все этодапроходить tokio Реализация из, так что на самом деле ситуация за из более сложна, чем эта. Как разработчик, вы действительно можете думать об этом как о синхронной обработке, а не как об однопоточной обработке. Скажи приезжать tokio,Кажется, идеально подходит для этого случая использования,Потому что вы пользуетесь вещами, которые по сути являются параллелизмом.,Они не обязательно должны выполняться по порядку,По крайней мере, некоторые их части могут выполняться одновременно.,Иногда это может даже выполняться параллельно.

просить:номне любопытнотыверно tokio Мнения, ваш опыт использования этой платформы, простота ее использования и последние новости об асинхронности. Rust да Send/Sync Обсуждения кражи работы, планировщиков и т. д.

отвечать:даиз,С точки зрения высокого уровня,картина Arroyo Такая система на самом деле не требует чего-то вроде tokio Такой сложный планировщик. Как я уже упоминал, эти операторы в основном работают как один поток. Он получает событие, обрабатывает все его содержимое, а затем отправляет его следующему пункту назначения. Все это должно происходить для обеспечения гарантий корректности системы. Поэтому Арройо Первая версия была фактически построена на многопоточности и обработке потоков. существовал в какой-то момент, его перевели приезжать tokio и AsyncRust на самом деле начался очень рано.

Основная причинада,Сейчас в экосистеме много AsyncRust., если вы хотите использовать общие сетевые библиотеки, драйверы библиотек данных или что-то еще из экосистемы сетевого программирования, в какой-то момент вам всегда придется иметь дело с асинхронными. В какой-то момент стало проще перевести всю вашу систему на синхронный режим проживания. Это, несомненно, сложная миграция. На самом деле, я никогда раньше не использовал асинхронный Ржавчина. Таким образом, это предполагает приезд, много обучения, много времени для существования. tokio Discord канал, это очень полезно.

но Наконец-то,удивительная изда,этодействительныйначальство Изменятьпридется Быстрее Понятно。Просто выполнение этой миграции сделало систему быстрее примерно на 100%. 30%, что было совершенно неожиданно. Но оказывается, что Токио Планировщик очень эффективен в решении подобных задач, хотя на высоком уровне вся эта обработка выглядит однопоточной, на самом деле за кулисами происходит гораздо больше, что необходимо координировать. Мол, у вас вообще-то темы существуют как у нас, и S3 или Другая системная связь.

У нас много очередей, участвующих в нем. Таким образом, даже если у нас есть лишь небольшое количество фактически обрабатывающих потоков,В других потоках происходит много сетевого обмена.,напримерпроходить gRPC руководить协调。tokio существует, отлично справляется с организацией всего этого. Работа эффективно и максимально эффективно использует ваши основные ресурсы.вернонас Давайте поговоримбольшинствоудивительная изда,Мы можем запускать систему с чрезвычайно высоким коэффициентом использования.,Если оно превышает 95% из CPU При использовании все остается отзывчивым и отзывчивым, способным на такие чрезвычайно высокие CPU Эффективность использования. Работа, такого существования у меня никогда не было из-за опыта использования других написанных систем парадигмы программирования.

Насколько меня беспокоит асинхронный Rust с точки зрения перспективы, я думаю, если мы будем использовать слово «драма», я думаю, Rust Сообщество в в целом больше драмы,Я не совсем понимаю, почему. но я думаю, возможно, технология работает слишком хорошо,Настолько, что нам приходится изобретать другие вещи, чтобы выразить свое недовольство.,но Я бы сказалУ асинхронного Rust есть кривая обучения。для меня,От одного я думаю уже довольно сильно из Rust Программист превратился в эффективный иасинхронный Rust программист,Это заняло около месяца,Это определенно означает, что больше всего проблем у других, когда они вносят свой вклад в это, — это окраина системы.,Такая ситуация может действительно разочаровать, если вы не знакомы с управлением стратегиями, связанными с асинхронным параллелизмом, в ситуациях.

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

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

отвечать:Нетдаособенно из-за условий гонкиизпроситьвопрос,Как я уже упоминал,Архитектура нашей системы упрощает параллелизм высокого уровня.,Хотя существуют и другие сложности в деталях.,Особенно, когда вы пытаетесь выйти на новый уровень производительности. Например,Системы хранения очень сложны.,Имеет много параллелизма.

но Rust Это действительно очень помогает справиться с этой сложностью. существуют проблемы, возникающие на производстве, приезжатьизпросить Подробнее о запросах высокого уровня, то есть о том, как взаимодействуют разные части этой распределенной системы, а также Различные части делают ложные предположения о том, что делают другие части. Неудачная изда,Rust абсолютно не может решить проблемы распределенных систем.,носуществовать на микроскопическом уровне,Как только вы заставите их скомпилировать,Все работает очень хорошо

Раньше я существовал примерно два раза подряд из 12 Я сразу же писал код часами и днями, а в итоге потратил около часа, пытаясь его скомпилировать. Затем, после того, как его существование прошло первую компиляцию, оно работало отлично. Я создал систему с одним узлом, распределенную систему, без какого-либо тестирования или итерации. Он практически не изменился с момента своего первоначального внедрения. Я никогда раньше не существовал C++ или даже Java Я столкнулся с такой ситуацией при написании сетевого программного обеспечения.

Плавная компиляция и отличная производительность в Rust

просить:это действительно впечатляет,Действительно да. Очень удивительно,тыспособен сделатьприезжатьв этот момент。Это также доказываетRust из системы типов из действительности, а также заимствование шашки такжевсе делают Rust Опыт разработки и разработчика становится отличным от элементов. Однако мне хотелось бы знать, хотя у вас, возможно, и не так много проблем во время выполнения, сталкивались ли вы с какими-либо проблемами при компиляции, такими как несогласованность в некоторых частях экосистемы, например, в разных версиях? tokio изсовместимостьпроситьвопрос,или ВОЗНеттакой жеиз Библиотекаиногда Зрелость Неттакой же。

отвечать:даиз,Это так и не стало большимпроситьвопрос。общий Например, Руст Созданная экосистема очень полезна для нас с точки зрения производительности. C++ По сравнению с остальным миром работать с зависимостями очень сложно. существовать C++ мир, где работать с зависимостями очень сложно. и существовать Rust середина,У нас уже есть невероятно богатая экосистема,И это дасуществовать достигается в относительно короткие сроки. Поэтому иногда возникают проблемы с совместимостью.,Нам пришлось создать несколько проектов с открытым исходным кодом, от которых мы зависели.,но я хочу сказать изда,Занятие этими вопросами «просить существование» составляет очень небольшую часть моей повседневной работы.

просить:тынестиприезжатьизвсевещьвернодля общего развитиялюдичлен Давайте поговорим Вседа Довольно низкий уровеньиз,или ВОЗПо крайней мере требуетсяверно Как построитьэтот Образецизсистемаили Структура такаяизсистема Обладать большим количеством профессиональных знаний и талантовсейчаспридетсяочень хороший。Я хочу знать,тыдуматьRustв какой степениначальствогидтыв сторону соответствия конвенцииизрешениевперед, продолжать?а а также ваши собственные профессиональные знания да что?

отвечать:даиз,Я думаю Rust Это действительно приведет вас к правильному решению. Однако это не всегда может помочь вам добиться соответствия требованиям. Хотя окружающие инструменты очень полезны, например Cargo Clippy Очень полезно, всегда поможет.

так,Я, соучредитель, никогда раньше не использовал Rust., этот проект существовал на Работа раньше. Он очень опытный человек в распределенных системах. Он участвовал в разработке многих систем запросов и хорошо с ними знаком. Rust Еще не очень знаком. картина Clippy Этот инструмент действительно помог ему быстро освоить его. Rust из Идиоматический стиль. Кроме того, я думаю Rust Сообщество тоже очень помогает, я уже упоминал приезжать. tokio Discord, существование стараюсь быстро выучить AsyncRust Очень полезно. нообщийиз Например, Руст Сообщество очень помогает,Могу помочь решить проблему просить,Читатели смогут понять, почему возникают странные проблемы с компиляцией.

просить:существовать Начать обучение Rust время, помимо официального Rust Book Используете ли вы другие ресурсы за пределами сообщества? Вы также начинаете учиться?

отвечать:действительныйначальство,я из 2014 Начало использования Ржавчина, но прямо жить в настоящем, я никогда не убеждал компанию существовать Rust серединаруководить重大проект.существовать Внедрение Rust в крупной организации — всегда непростая задача.。носуществоватьнадолго,яодинпрямойсуществоватьяизиндивидуальныйлюдипроектсерединаделатьиспользоватьэто。Я был поклонником этого языка с тех пор, как впервые о нем узнал.

но что касается моего собственного развития, то ресурсов за это время много. Ржавчина Book Первое издание «Из» оказалось для меня настолько полезным, что оно даже стоит у меня на книжной полке. Однако на ранних этапах существования Rust Так много изменилось, что отслеживание языковых обновлений стало почти постоянной работой. Теперь дела обстоят намного лучше, Раст. В течение нескольких лет ситуация была относительно стабильной. Я думаю, что качество и количество ресурсов также значительно улучшились. но я знаю, что есть книга о Rust Очень хорошая книга для производственных сред, я часто ее проверяю, и она охватывает более конкретные темы, такие как существование Rust. Как записывать журналы, как измерять и т. д. Эти вопросы не обязательно относятся к начальному уровню. Эта книга называется Rust. in Производство», автор да Luca Palmieri。

просить:тынестиприезжатьиногда Трудно убедить крупные компаниииорганизационный поворот Rust И существуют эти компании, представленные Ржавчина. Исходя из вашего опыта, почему это так?

отвечать:даиз,Я думаю, что крупные компании часто неохотно идут на смелые шаги в области технологий. много раз,Они больше внимания уделяют минимизации риска.,Вместо того, чтобы дамаксимизировать прибыль。верносегодняиз CTO Например, Руст Похоже на приключение.

просить:они волнуютсяинженернаучиться использоватьRustБудет ли это слишком сложно??еслинас Восстановить команду,да Можно ли передать этот проект другой команде? Им нужно придумать, как его использовать? Сможем ли мы нанять достаточное количество Рустинженеров?

отвечать:еслитыда Google, нужно нанять 10,000 Имя инженера, я думаю, вам стоит побеспокоиться о том, чтобы иметь возможность нанять достаточно приезжающих из Rust инженер. Сомневаюсь, что в мире так много да и из Rust инженер. но для небольших компаний это не проблема, не так ли? Наймите троих Rust Быть инженером очень легко. И я думаю, особенно для небольших компаний, использующих Rust Это может быть преимуществом, но не может быть преимуществом для крупных компаний.

Потому что, будучи небольшой компанией, вы можете привлечь людей, которые хотят использовать Rust Работаизлюди。этотвернопривлечьлюдиталант Давайте поговоримэтоогромныйиз Мотивирующие факторы。Я думаю,Даже когда используется существование, оно может быть немного неясным из языка.,Вы также привлечете людей, которым это действительно интересно. Это может принести вам огромную пользу. но Для крупных компаний,Они больше смотрят на риск.

Преимущества Rust для небольших компаний и подбор инженеров по Rust

просить:Как нанять Rust инженер? Вы связываетесь с ними через свою личную сеть или дасуществуете разместить где-нибудь объявление о работе?

отвечать:даиз,Хм,На самом деле для нас,Первоначально мы набирали больше специалистов в сфере потокового мультимедиа. Сейчас существуют по сравнению с примерно двумя годами ранее,этот两индивидуальныйполевозможный Есть ещеизперекрытие。много новыхизпоток СМИсистема也делатьиспользовать Ржавчина. но Исторически, как я уже упоминал ранее, в основном использовались потоковые системы Java Разработка из. Итак, у большинства людей Java Аспекты профессиональных знаний. но я ожидаю, что, поскольку мы попытаемся набрать более широкий набор сотрудников, от Rust инженериз Рекрутинг из кадрового резерва будет очень плодотворным, особенно для некриптовалютных сфер. Rust Для компании,в настоящий моментверно Этипозиция Кусочекиз Спрос очень большой。такнас Воля能достаточноотсерединавыгода。

просить:очень правильно。Какими третьими сторонами вы пользуетесь crate Завершить Работа? Я думаю, что сообщение в блоге существует, вы упомянули приезжать Data Слияние. Может быть, об этом вы можете поговорить из ящика, но не стесняйтесь говорить о любом другом, который вам нравится, из crate。

отвечать:даиз,Data Fusion Для нас это, наверное, самое критичное. Данные Fusion Включая многие аспекты, оно происходит от arrow-rs экосистема. В основном мы используем его как SQL парсер. это будет SQL Текст преобразуется в AST (абстрактное синтаксическое дерево), а затем создается планировщик. добавив AST Преобразовать в описание SQL План, ориентированный на из, должен быть реализован.

SQL даан чрезвычайно сложен из языка с 30 Годы истории и много разных равнозначных выражений. Поэтому при построении SQL engine, вам может быть очень полезно иметь библиотеку, которая справится со многими сложностями. Из него мы получаем четкий план, который потом можно оптимизировать по-своему и скомпилировать в набор собственных операторов. Следовательно, данные Fusion Очень важно для нашей способности так быстро построить эту систему. Кроме того, я хотел бы также отметить, что она может быть ниже или выше Rust Web Экосистема действительно это ценит.

Итак, мы зависим от Axum и SQLX, это очень хорошо SQL библиотека. Это вовсе не основная часть нашего продукта. В основном это используется для поддержки нас из API и Web интерфейс. но Удивительно, что, хотя Rust, возможно, и не очень применим в этой области, у нас все еще есть эти чрезвычайно высококачественные библиотеки, которые позволяют очень легко создавать качественные продукты. Для нас это было впечатляющим открытием. Вы упомянули о необходимости приезжать в эти библиотеки, я не могу много сказать о них. Data Fusion, но абсолютно уверен, что другие библиотеки существуют на любом языке, по крайней мере, согласно моему опыту, который я использовал раньше. Axum и SQLX, я думаю, они действительно великолепны.

Впечатляющая веб-экосистема Rust и высококачественные библиотеки.

просить:но Я хочу знатьэтотиндивидуальныйэкологиясистемаиз Каково будущее?。тыда否думатьнас Уже достигнутоприезжатьточка,crate Начни больше или меньше и стабилизируйся, это главное crate Можетиспользовать Втыиз Работа?возвращатьсядатыдуматьэтотиндивидуальныйэкологиясистемаеще молод,Если есть другие веб-фреймворки или парсеры и появляются другие новые инструменты,Возможно, вы просуществуете через год или дольше и подумаете о переходе?

отвечать:даиз,Я думаю, что, вероятно, еще слишком рано говорить о том, что ситуация стабилизировалась. год назад,Вы существуете во многих областях, извыбирать, возможно, было по-разному. точно,три года назад,Эти crate Нет существования. Несмотря на то Axum Он сам по себе постоянно меняется, и в каждой версии есть большие улучшения. Поэтому я думаю, что даже эти crate Он еще не полностью стабилен, я думаю, у нас будут более стабильные периоды, особенно с учетом Rust стать более функциональным。много Эти Библиотека Нетпридется Нетсуществоватьасинхронныйэкологиясистемаи Реальностьсейчасизкорректировки ограничений,Например, отсутствие возможности использования асинхронной функции и возможности,Эта функция реализована и будет реализована в ближайшее время.

Я думаю, это позволит этим библиотекам стабилизировать свои API, что до сих пор было непросто. Я с нетерпением жду более подробной информации в будущем о том, какой из них использовать crate Чтобы решить разные проблемы, просить из четкой выборки и еще из стабильности. Для меня, например, Руст Экосистема настолько впечатляет, что, возможно, у нее был шанс стабилизироваться раньше. Просто приведу случайный пример: для ведения журнала у нас когда-то было log ящик, он существует в течение длительного времени, очевидно, в зале.

но на самом деле,Оказывается, есть дизайны, которые лучше изыскивают. финальный,насвыбирать Понятно tracing ящик. Экосистемы способны мигрировать, приезжая лучше изыскивать, не попадая в локальную оптимальную дилемму. существует много разных полей, мы все видим эту ситуацию, на ранних этапах примерно определенного crate Благодаря консенсусу в отношении решений такого типа проблем экосистема может разработать лучшие решения.

Я не думаю, что это характеристика, присущая всем экосистемам. Я очень ценю это Rust Сообщество может относительно быстро и относительно консенсусно двигаться к улучшению ситуации в экосистеме. Так что я думаю, что мы и дальше будем наблюдать, как это происходит. Что касается Axum Да, да Rust Web программированиеиз окончательного решения, я не знаю. Я думаю, что мы продолжим видеть итерации «приезда».

Стабильность ядра Rust и ожидания стандартной библиотеки

просить:Так Rust Сам язык, а как насчет стандартной библиотеки? Насколько стабильно ядро ​​Rust?

отвечать:Я думаю每индивидуальныйлюди Всеиметь自己из RFC Список желаний, надеюсь, со временем объединится. Я лично думаю, что для меня, относительно async из Недостаточная полнота Был самым большим из проблем. Например, отсутствует async fn in Трейты требуют от нас множества неуклюжих обходных путей. И предстоящая стабильная версия не является достаточно полной для всех наших случаев использования.

ноя ценю Rust Не торопитесь, чтобы решить эти просить вопросы. Я думаю, мы видели, как приезжатьсуществовать async аспект этого процесса. Всего из Например, Руст Язык программирования на данный момент находится в очень хорошем состоянии. По сравнению с предыдущими пятью годами она стабилизировалась. Мы продолжим следить за стабилизацией ситуации с прибытием и надеемся, что будут некоторые хорошие улучшения, такие как Из GADT придетсяприезжатьиз Работаили ВОЗсейчассуществоватьсмотретьприезжатьиз async из Улучшения.

просить:Я думаюсуществовать Rust с другими языками Интерактор FFI (Foreign Function Interface) имеет проблемы при загрузке кода во время выполнения. Я думаю, что это также был бы интересный вариант использования потоковой платформы, возможно, вы могли бы подключить что-то к среде выполнения на своем движке. Конечно, есть еще картина WebAssembly Таким образом, технологии существуют и продолжают развиваться. Мне было интересно, пробовали ли вы это, Также Что вы думаете о нынешней окружающей среде и экосистеме?

отвечать:даиз,фактически,Возможно, мне стоит упомянуть об этом в своем блоге.,В своем блоге я назвал это одержимостью.

Rust Нет стабильности ABI(бинарный интерфейс приложения),Это сложная задача для создания чего-либо подобного подключаемой системе. Итак, если вы хотите скомпилировать,Что касается изображения, мы поддерживаем пользовательские функции.,такиспользоватьсемья Можетписать Rust Затем код загружается в механизм перемещения при запуске. Если вы используете C или C++ Написав это, есть стабильное из C API, вы можете динамически связывать программное обеспечение во время выполнения. Ржавчина Нет такой функции. Поэтому, если вы хотите скомпилировать библиотеку и хост-приложение и связать их, вам придется использовать одну и ту же версию. Rust компилятор.

И существуют многие случаи,Также требуются те же настройки компилятора. Таким образом, это очень затрудняет распространение двоичного программного обеспечения из вещей, использующих эту библиотеку. Итак, сегодня,В основном вам нужно использовать C API, что означает отказ от многого в существующем интерфейсе Rust из функций и возможностей, по крайней мере, да по интерфейсу существуют. Вы также упомянули приезжать Васм, это решает этот вопрос, используя другой вид решения. В некоторых аспектах существования, с точки зрения интерфейса, это даже хуже. Потому что существуют Wasm В экосистеме не существует реального стандартного способа взаимодействия между хостами и плагинами.

так Каждое приложение должно решать эту проблему самостоятельно.проситьвопрос。нас Уже обсуждалосьWasmВ качестве решения такого типапроситьвопросизодин种решение。действительныйначальство,насужеи Wasmtime Интегрировано, это отлично изRust Wasm время выполнения. Для чего-то вроде давайте поговорим об этой системе, это может быть направление в будущем. Особенно подходит для интеграции и существования других языковых экосистем. Wasm В этой области прилагается много усилий для решения этих проблем интеграции. Rust Как программа делится Wasm Память и Python программа общается, а также Как построить этот единый интерфейс, а это значит, что для отдельных проектов нам не придется снова и снова решать такого рода проблему, но если Rust существуюти Было бы здорово, если бы другие скомпилированные коды лучше справлялись с динамическим взаимодействием.

ты знаешь, есть ли они RFC предложенный Rust ABI из Стабилизация? даиз, в этой области есть несколько разных методовиз RFC, носуществовать За последние несколько лет я не увидел большого прогресса в перемещении, и у меня нет реального интереса к решению этой проблемы просить. Я думаю, что это существование является своего рода нишевым спросом. большинство Rust Проекты распространяются в виде исходного кода. Большинство существующих библиотек компилируются при создании. но Для чего-то вроденасэтот Образецизпроект,или любой, кто участвует в экосистеме плагинов для передвижения из проекта.,этотуже远远Нетдостаточно Понятно。Я думаюнасуже涵盖Понятнопроектиз Много технических подробностей。

просить:я也想谈谈один些и Бизнес более актуаленизиметь значение。Я думаю,Прежде всегопроситьизпроситьвопросда,Насколько я знаю,Arroyo автор Y Combinator поддержка. Интересовали ли инвесторы когда-нибудь ваш язык?,или Никогда не было обсуждения? или дажевозможныйдахорошая вещь,Возможно, они поощряют вас использовать Rust.

отвечать:даиз,Rust Это помогает нам общаться с инвесторами. Уже существуют некоторые системы, которые мы продемонстрировали ранее. Rust Могут существовать работать на коммерческой основе.

инвесторы знают этодаданныеполеиз Популярные языки。такеслитыделатьиспользовать Раст, ты определенно выглядишь привлекательнее в том смысле, что существуешь. но Честно говоря, большинству инвесторов плевать на ваш язык. Они не работают на этом уровне. Если вы являетесь экспертом в этой области и говорите: «Я считаю эту технологию правильной», инвесторы не будут в этом сомневаться, их больше волнуют вопросы бизнеса, такие как Как вы будете продавать этот продукт, кто будет вашими пользователями, почему они будут выбирать именно вас, а не эту сферу из более зрелых компаний, они точно не спросят, почему вы используете tokio или async-io и т. д.

Для тех, кто работает в той же области, существуют положительные рассмотрите возможность использования Rust из Люди, возможно, уже участвовали в этом и не уверены, стоит ли полностью посвятить себя своему следующему проекту, какой совет вы бы дали? Ну, я думаю, что эта область существует, Руст. Только настоящее из очевидного выбора. Знаете, мы прошли через использование Java или Go Ожидание построения этих систем за всю эпоху.

но Сегодня,Особенно в нынешних макроэкономических условиях.,Компании уделяют больше внимания затратам. Когда можно что-то написать на Rust,Она занимает вдвое меньше ресурсов, чем Java-версия, и четверть времени.,Это огромная, огромная точка продажи.。Java Система переписывает некоторые основные части, такие как проживание. Spark толькосуществоватьиспользовать C++ Перепишите их из основного движка. Сливной, Кафка из людей также существуют некоторые вещи, которые переписывают, поэтому я думаю, что если вы не используете C++ или Раст, с ним действительно сложно конкурировать.

Даже сегодня их может быть больше. C++ Разработчик, научите человека быть отличником Rust Программисты должны научить их быть хорошими программистами C++ Программистам гораздо проще. и Rust Компилятор очень полезен для людей, не знакомых с управлением памятью. Это усложняет допущение ошибок в этих категориях. Так что я думаю, что это очень очевидное извлечение. Возможно, стоит попробовать какие-нибудь новые языки. Вы упомянули приехать раньше Зиг. но Все эти так называемые из Rust Альтернативы нет Rust Взрослый, поэтому, если ты хочешь попробовать, тебе действительно придется быть очень смелым. Итак, я думаю, что либо да C++, или да Rust, и если у вас нет веской причины использовать C++,иначе я думаю Rust дапо умолчаниюизвыбирать。

просить:к Confluent Например, они переписали часть своей кодовой базы, используя С++, если я правильно понимаю. Я хочу знать, почему они выбирают C++ Вместо того, чтобы да Ржавчина, потому что Rust возможныйужеэтоочень зрелыйизальтернатива Понятно。Почемуони не делаютвыбиратьRustШерстяная ткань?или ВОЗдапотому чтоRustсуществовать В это времявозвращаться Нет Так Зрелый??

отвечать:даиз,Может бытья Может Поговори об этом Spark из ситуации. Возможно, у меня есть дополнительная информация по этому поводу... нода, Spark изисторияиспользовать Scala написано,Позже в основномиспользовать Java писать. Затем Databricks Переписали свой основной движок на C++。

而且他们одинпрямой Держать Понятно Закрытый исходный код。Я думаюэтотиндивидуальныйпроект Одасуществовать Началось шесть лет назадиз,В это времяиз Rust Не такой зрелый, как сегодня.

просить:ты Знатьсуществоватьэтотиндивидуальныйполевозвращаться Есть другие компанииплан重Писать他们代码Библиотекаиз Частично??

отвечать:хорошийиз Примером являетсяда InfluxDB,первыйиспользовать Java написано, которое потом переписали в Иди, но только недавно принял Rust Завершена серьезная переработка основного механизма хранения данных. На самом деле мы получили от этого большую пользу, потому что они так меня поддерживали. Data Fusion и Arrow проект.

Другой примерда Ти КВ, они изначально использовали Go писать,Затем переписали свой основной движок,Использовал Руст. так что я думаю,Такое существование стало довольно распространенной тенденцией последних лет.

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

отвечать:даиз,Возможно, я говорил это много раз,Для тех, кто хочет начать новую изданную систему или новую массивную систему из,В будущем большинство людей будут выбирать Rust。возвращатьсяиметьодин些людисуществоватьначать зановоиз C++ системе, я смотрю только на свой домен, а три четверти новой системы Rust, четверть новых систем все да С++. Я думаю с Rust существуют Технические и набор персонала станет проще.

Может быть, мы увидим, как эти другие новые языки станут более зрелыми.,Начни когда-нибудь привлекать проект.существовать,яполагать Rust Это станет скучным, и люди захотят использовать более увлекательный язык. нофор Rust Что касается проекта, я думаю, он получится очень успешным. Пока что мы нисколько не сожалеем об этой технологии. Мы работали над этим больше года, Раст. Это доказало свою эффективность в использовании технологии выбора.

Использование Rust в инфраструктурном и прикладном программном обеспечении

поэтому,Существует разница между базовым программным обеспечением и прикладным программным обеспечением. Базовое программное обеспечение,Просто картинамы разрабатываем вещи,или, например, библиотека данных,Обычно пишется небольшой командой,Тогда им управляет большая группа людей. поэтому,Это имеет смысл... приложите много усилий, чтобы сделать это действительно эффективным и быстрым.,Потому что в течение своего срока службы он будет работать на многих ядрах ЦП. Для прикладного программного обеспечения,Нет большой разницы между стоимостью разработки и стоимостью выполнения.,может быть, даже больше,поэтомуты Нетодин定иметьтакой же Образециз Финансовое давление должно быть очень эффективным。

И сегодня,Я думаю, что существует это поле,Rust Сложнее обобщить, поскольку использование Rust Написание кода, найм или обучение Rust инженер добавит дополнительную сложность. Поэтому мне интересно, будет ли Rust существовать в этой области, зрелой через язык и экосистему и з также готов использовать Rust или Надеюсь использовать Rust излюдииз продолжает расти и развиваться. На мой взгляд, это неиспользованная область для языка, и новый язык может войти и занять ее, потому что на уровне приложения мы можем добиться большего, чем Java и Go лучше.

Rust из Многие удобные функции идеально подходят для этой ситуации, но Rust существовать Управление памятьюижизненный циклпроситьвопросаспектизнекоторые края,Если вас не очень волнует производительность,Вам не следует беспокоиться об этих вопросах просить.

Если посмотреть на смежные области науки,Кажется, они тоже начинают пробовать некоторые идеи из мира Rust.,Возможно, даже удастся переписать некоторые части их библиотеки, чтобы использовать ее на менее производительном языке более высокого уровня (например, Python).

просить:тыиметь Parquet (формат столбца), а затем проанализировать его и pandas Подожди, ибо Rust Давайте поговорим,Это интересно из области,Потому что это анализ производительности и данных и гибридный подход.,Производительность также важна,Это правильно? Согласны ли вы с этой точкой зрения?

отвечать:даиз,Я думаюэтот Абсолютновернобудет продолжать существоватьсуществовать。этотдействительныйначальствода Воля Rust Core оборачивает метод в язык высокого уровня (например, Python). Это было очень и очень успешно. существовать Java Экосистема, мы тоже это видим, многие Java 工具ужесуществовать Rust переписал их в изcore и получил 10 раз или даже больше улучшения производительности.

лично я нет Python излюбители, но видимо людям это очень нравится. Трудно убедить ученых, занимающихся данными, использовать что-то кроме Python. Что-либо кроме из. Поэтому, если вы хотите обеспечить лучшую производительность, я думаю, что это существует. Rust Подход, заключающийся в написании основного кода на языке высокого уровня и последующей его обертке в язык высокого уровня, оказался очень успешным.

Mojo: язык, подобный Python, с производительностью Cpp.

просить:я Предполагатьвозвращатьсяиметь另один种令людиочарованныйизметод,Нет Знатьтыда Знакомо или нет Моджо. Это да Крис Рэтнер Lattner) из нового языка, он да Swift из Создатель. Это да создает что-то вроде Python из языка, фактически скомпилированного в LLVM и MLIR ,цельсуществоватьпоставлять C++ Уровень производительности.

отвечать:для меня,Это похоже на Python язык очень амбициозен, поскольку в некоторой степени он совместимость. Подумайте о том, чтобы приехать Python из семантики Также оптимизация сложности, я думаю, это очень амбициозно. нода, если ты не хочешь этим пользоваться Rust из метода, то кажется, что это единственный способ получить приемлемую производительность, особенно если использовать эти методы. Python API из ситуации. Для нас, потому что мы начинаем с SQL начну, будет SQL Оптимизацию очень легко реализовать для любого желаемого значения, что дает нам массу преимуществ, обеспечивая очень высокие производительность,потому что SQL да Декларативный язык, на котором вы можете переписывать выражения для более быстрого их выполнения. нода, когда ты используешь что-то вроде Python При использовании Rust То же самое справедливо и для ядра. Поэтому я думаю, что, глядя на сферу приезжаемой науки, по мере увеличения объема данных и сложности, с которой мы имеем дело, увеличивается, как финансовое давление будет способствовать внедрению Парадигма производительности будет интересна. нода, сейчас я думаю Polar из метода, то есть использовать Rust По сути, многие научные экосистемы данных будут выглядеть пригодными для проживания.

просить:ты想给整индивидуальный Rust Какой совет есть у сообщества?

отвечатьЯ хочу, чтобы сообщество Rust немного успокоилось.,Rust Это невероятный язык с невероятной экосистемой и сообществом. И все же у нас, кажется, в десять раз больше драмы, чем в любом другом языковом сообществе, в котором я был. Я не совсем понимаю, почему эти драматические события имеют свои корни. но я думаю, что такой уровень драмы только навредит Rust из Коэффициент принятия, когда люди просматривают Rust Reddit И сказал: «Это плохое шоу»,Почему мне стоит присоединиться к этому сообществу? так,Надеюсь, мы сможем оглянуться на прошлый год,Просто скажи,Нам всем нужно немного успокоиться,Узнайте, как работать с другими людьми,Перестаньте вытеснять людей из сообществ. Это великолепно из последнего заявления,Мне это очень нравится.

постскриптум

Micah Wylde поделился своим Rust а также Rust экологический из взглядов и делится тем, почему он думает Rust Больше подходит для инфраструктуры данных познания. Надеюсь, эта статья может быть вам полезна.

Спасибо за чтение!

Ссылки

[1]

Rust in Production Podcast: Arroyo: https://corrode.dev/podcast/s01e04-arroyo/

[2]

arroyo: https://github.com/ArroyoSystems/arroyo

[3]

Arroyo документ: https://doc.arroyo.dev/introduction

[4]

Windmill: https://github.com/windmill-labs/windmill

[5]

《Rust дополнительные инфраструктуры от Best Language》: https://www.arroyo.dev/blog/rust-for-data-infra

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose