Как стать автором
Обновить
0
0

web-dev

Отправить сообщение

Используйте Arc<[T]> вместо Vec<T>

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.2K

В этой статье я хотел бы поговорить о том, почему вы могли бы предпочесть использование Arc<[T]> вместо Vec<T> в качестве варианта по умолчанию в вашем Rust-коде.

Читать далее
Всего голосов 16: ↑15 и ↓1+17
Комментарии20

Сбор логов в Kubernetes с помощью Vector: преимущества, архитектура, реальные кейсы

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров7.8K


Всем привет! На связи Максим Набоких, архитектор и технический руководитель Deckhouse Kubernetes Platform. В ноябре 2023 года я выступил на VK Kubernetes Conf, где рассказал, как мы делаем доставку логов в Kubernetes надёжной и отказоустойчивой с помощью Vector. Эта статья — текстовая версия моего доклада.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+45
Комментарии15

Практическое руководство по Rust. 3/4

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров5.8K



Hello world!


Представляю вашему вниманию третью часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Всего голосов 21: ↑20 и ↓1+26
Комментарии0

Обзор библиотеки Actix в Rust

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.1K

Привет, Хабр!

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

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии11

Cloudflare открыла код Rust-фреймворка для программируемых сетевых сервисов — Pingora

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.5K



Мы гордимся тем, что открываем исходный код Pingora — фреймворка на Rust, который мы используем для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare. Pingora выпускается под лицензией Apache 2.0.

Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии2

Практическое руководство по Rust. 2/4

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров7.8K



Hello world!


Представляю вашему вниманию вторую часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Всего голосов 24: ↑21 и ↓3+29
Комментарии2

Начало работы с Axum — самым популярным веб-фреймворком Rust

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров13K


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

Читать дальше →
Всего голосов 25: ↑22 и ↓3+25
Комментарии9

Как работает сеть в контейнерах: Docker Bridge с нуля

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров43K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Всего голосов 71: ↑71 и ↓0+71
Комментарии14

Практическое руководство по Rust. 1/4

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров22K



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Всего голосов 24: ↑19 и ↓5+22
Комментарии12

Люди не понимают ООП

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров118K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+140
Комментарии461

Trait-объекты и полиморфизм в Rust

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.6K

Привет, Хабр!

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

Один из способов, с помощью которого Rust достигает полиформизма, - использование Trait-объектов.

Читать далее
Всего голосов 17: ↑13 и ↓4+11
Комментарии22

Как реализовывается WebAssembly в Rust: кратко

Время на прочтение4 мин
Количество просмотров4.9K

Привет, Хабр!

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

з.ы: предполагается, что читатель знает основы webassembly и про что-то из rust

Читать далее
Всего голосов 14: ↑12 и ↓2+11
Комментарии1

Управление зависимостями в Rust с Cargo

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.9K

Привет!

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

В этатье рассмотрим что такое Cargo и как с ним работать.

Читать далее
Всего голосов 15: ↑9 и ↓6+4
Комментарии4

Большая шпаргалка по Rust. 2/2

Уровень сложностиСредний
Время на прочтение39 мин
Количество просмотров7.5K



Hello world!


Представляю вашему вниманию вторую часть большой шпаргалки по Rust.


Первая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Всего голосов 21: ↑20 и ↓1+26
Комментарии2

Обзор микроволнового датчика присутствия Hi-Link LD2410

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров21K

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

Мой выбор пал на DIY микроволновый датчик Hi-Link LD2410, расскажу почему.

Читать далее
Всего голосов 38: ↑38 и ↓0+38
Комментарии79

Делаем двоичные файлы Rust меньше по умолчанию

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров5.3K

Вы когда-нибудь пробовали компилировать program helloworld на Rust в режиме --release? Если да, то видели, какой размер двоичного файла получается? Достаточно сказать, что он не очень маленький. Или, по крайней мере, не был таким до недавнего времени. В этом посте я расскажу, как узнал об этой проблеме и попытался устранить её в Cargo.

Читать далее
Всего голосов 38: ↑38 и ↓0+38
Комментарии13

Арифметика первого класса в системе типов Rust

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.5K

Арифметика – наука непростая, но к нашему удобству работу с ней можно облегчить с помощью экспрессивной системы типов языка Rust. В статье мы разберём реализацию на этом языке простейших математических операций, таких как сложение, вычитание, умножение и деление.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+58
Комментарии7

Как работает управление памятью в Rust без сборщика мусора

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров11K

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

Читать далее
Всего голосов 34: ↑30 и ↓4+33
Комментарии5

Libre/OpenPGP vs OpenSSH/age

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.7K
Я использую GnuPG (реализацию OpenPGP и LibrePGP) каждый день на протяжении более чем десяти лет. У меня накопилось почти две сотни публичных ключей разных людей с которыми я общался и общаюсь по почте. Почти три сотни публичных ключей для проверки дистрибутивов операционных систем и архивов исходного кода программ. И это не считая более чем полутора тысяч публичных ключей из ключниц GNU, Linux, Debian, FreeBSD и других проектов. Я был постоянным популяризатором OpenPGP экосистемы и рекомендовал её использовать для массы задач, возникающих даже в банальных домашних условиях. Но за последние пару лет я ощутимо поменял своё мнение насчёт её рекомендации. Перестал всё это использовать почти везде где можно.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Большая шпаргалка по Rust. 1/2

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров14K



Hello world!


Представляю вашему вниманию первую часть большой шпаргалки по Rust.


Вторая часть.


Другой формат, который может показаться вам более удобным.


Обратите внимание: шпаргалка рассчитана на людей, которые хорошо знают любой современный язык программирования, а не на тех, кто только начинает кодить 😉


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

Читать дальше →
Всего голосов 37: ↑35 и ↓2+43
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Донецкая обл., Украина
Зарегистрирован
Активность