Суровый байт — Компания занимается разработкой собственных продуктов, а также развитием проектов для своих партнеров, например, для Российской академии наук. Компания полностью самостоятельна и независима, они сами пишут ТЗ и являются заказчиками на многих проектах. На данный момент основная работа ведется по трем из них: СУБД, Криптография и социальный портал для ученых.
Что и как?
▪️ Удалёнка/Офис/Гибрид
▪️ График 5/2
▪️ Опыт от 3 до 6 лет
▪️ От 150000 до 400000 руб
📩 Изучить вакансию
Please open Telegram to view this post
VIEW IN TELEGRAM
hh.ru
Вакансия Rust Developer в Москве, работа в компании Суровый байт
Зарплата: от 150000 до 400000 ₽. Москва. Требуемый опыт: 3–6 лет. Полная занятость. Дата публикации: 11.12.2024.
👎1
Rig — это библиотека на языке Rust для создания масштабируемых и модульных приложений, использующих LLM!
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
75%
Vec
15%
String
10%
Option
0%
$str
#ЧеКак
🤔 Библиотека Tokyo
Это асинхронный фреймворк, который позволяет разрабатывать высокопроизводительные сетевые приложения и системы ввода-вывода.
🚩 Почему стоит использовать Tokio?
🟠 Асинхронное программирование
Tokio основан на модели асинхронного программирования, что позволяет эффективно обрабатывать множество задач одновременно без блокировки потоков. Это особенно полезно для сетевых приложений, где время ожидания может быть значительным.
🟠 Высокая производительность
Tokio оптимизирован для работы с большим количеством соединений и задач, что делает его идеальным выбором для создания серверов и клиентских приложений.
🟠 Широкий набор инструментов
Tokio предоставляет множество утилит для работы с асинхронными задачами, включая таймеры, мьютексы, каналы и другие примитивы синхронизации.
🟠 Совместимость с другими библиотеками
Tokio хорошо интегрируется с другими библиотеками экосистемы Rust, такими как Hyper (HTTP-клиент и сервер), Diesel (ORM) и многими другими.
👨💻 Пример
Использование Tokio для создания асинхронного HTTP-сервера с помощью библиотеки Hyper:
👉 Новости 👉 Платформа
Это асинхронный фреймворк, который позволяет разрабатывать высокопроизводительные сетевые приложения и системы ввода-вывода.
Tokio основан на модели асинхронного программирования, что позволяет эффективно обрабатывать множество задач одновременно без блокировки потоков. Это особенно полезно для сетевых приложений, где время ожидания может быть значительным.
Tokio оптимизирован для работы с большим количеством соединений и задач, что делает его идеальным выбором для создания серверов и клиентских приложений.
Tokio предоставляет множество утилит для работы с асинхронными задачами, включая таймеры, мьютексы, каналы и другие примитивы синхронизации.
Tokio хорошо интегрируется с другими библиотеками экосистемы Rust, такими как Hyper (HTTP-клиент и сервер), Diesel (ORM) и многими другими.
Использование Tokio для создания асинхронного HTTP-сервера с помощью библиотеки Hyper:
use hyper::{Body, Request, Response, Server};
use hyper::service::{make_service_fn, service_fn};
use tokio;
async fn handle_request(_req: Request<Body>) -> Result<Response<Body>, hyper::Error> {
Ok(Response::new(Body::from("Hello, World!")))
}
#[tokio::main]
async fn main() {
// Определяем адрес и порт для сервера
let addr = ([127, 0, 0, 1], 3000).into();
// Создаем сервис
let make_svc = make_service_fn(|_conn| async { Ok::<_, hyper::Error>(service_fn(handle_request)) });
// Создаем сервер
let server = Server::bind(&addr).serve(make_svc);
// Запускаем сервер
println!("Listening on http://{}", addr);
if let Err(e) = server.await {
eprintln!("server error: {}", e);
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЧеКак
🤔 Как можно использовать cargo для сборки и тестирования кода Rust?
Чтобы использовать
Это включает оптимизацию и не включает отладочный код, который заставляет скомпилированную программу работать с заданной скоростью.
Чтобы использовать
Результаты тестов отображаются по мере их выполнения и помечаются знаком "прошел" или "не пройден". Если тест не пройден, в сообщении об ошибке будет указана причина сбоя.
👉 Новости 👉 Платформа
Чтобы использовать
cargo
для создания кода Rust, используется команда build
cargo build
При использовании cargo build
флаг --release
будет встроен в режиме выпуска.Это включает оптимизацию и не включает отладочный код, который заставляет скомпилированную программу работать с заданной скоростью.
Чтобы использовать
cargo
для тестирования кода Rust, используется команда test
cargo test
После запуска cargo test
создается отладочная версия программы, а затем запускается набор тестов.Результаты тестов отображаются по мере их выполнения и помечаются знаком "прошел" или "не пройден". Если тест не пройден, в сообщении об ошибке будет указана причина сбоя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
86%
Vec
7%
String
7%
Option
0%
$str
#ЧеКак
🤔 В чем разница между Rust enum и struct?
🟠
🟠
Это делает
🟠 Синтаксический анализатор - это пример, в котором использование
👉 Новости 👉 Платформа
struct
содержит поля, и каждое поле в struct
присутствует всегда. Это делает struct
уместным, когда вам нужно сгруппировать данные и иметь доступ ко всем компонентам этих данных.enum
содержит варианты, в которых за раз представлен только один вариант.Это делает
enum
уместным, когда у вас есть более одного компонента данных, но вам нужен только один компонент одновременно.enum
имеет смысл, потому что токен может быть одним из заранее определенного количества элементов.Please open Telegram to view this post
VIEW IN TELEGRAM
#ЧеКак
🤔 Почему программы Rust потребляют небольшой объем памяти?
Rust выделяет минимальный объем памяти, необходимый для выполнения операции, и делает это только при необходимости. После завершения операции память освобождается.
Это в отличие от языков, собирающих мусор, где память может оставаться выделенной до тех пор, пока сборщик мусора не получит возможность освободить память.
👉 Новости 👉 Платформа
Rust выделяет минимальный объем памяти, необходимый для выполнения операции, и делает это только при необходимости. После завершения операции память освобождается.
Это в отличие от языков, собирающих мусор, где память может оставаться выделенной до тех пор, пока сборщик мусора не получит возможность освободить память.
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
5%
i1
9%
float
5%
logic
82%
bool
#ЧеКак
🤔 Приведите пример impl блока в Rust
🟠
Когда функциональность реализуется таким образом, функциональность становится привязанной к
Вот пример
👉 Новости 👉 Платформа
impl
Блок позволяет реализовать функциональность на Rust enum
или struct
.Когда функциональность реализуется таким образом, функциональность становится привязанной к
enum
или struct
. Это помогает инкапсулировать функциональность, специфичную для данного enum
или struct
.Вот пример
impl
блока в Rust, реализующего функциональность для создания нового struct
:struct Number(i32);
impl Number {
pub fn new(n: i32) -> Self {
Self(n)
}
}
let five = Number::new(5);
Please open Telegram to view this post
VIEW IN TELEGRAM
#Вакансии
👨💻 Rust Developer / Researcher (DeFi/Crypto)
Qenetex - занимается разработкой сервисов в области DeFi и Blockchain. Высокая безопасность, конфиденциальность пользователей и простота использования лежат в основе всего, что мы создаем. В область нашей разработки входят многофункциональные, в т. ч. некастодиальные продукты, предоставляющие доступ к целой экосистеме сервисов в таких направлениях как Crypto Exchange, Trading, DeFi, Staking и др.
Что и как?
▫ опыт от 2 лет
▫ зп от 4000$
▫ Удаленка с гибким графиком
📩 Изучить вакансию
Qenetex - занимается разработкой сервисов в области DeFi и Blockchain. Высокая безопасность, конфиденциальность пользователей и простота использования лежат в основе всего, что мы создаем. В область нашей разработки входят многофункциональные, в т. ч. некастодиальные продукты, предоставляющие доступ к целой экосистеме сервисов в таких направлениях как Crypto Exchange, Trading, DeFi, Staking и др.
Что и как?
📩 Изучить вакансию
Please open Telegram to view this post
VIEW IN TELEGRAM
hh.ru
Вакансия Rust Developer / Researcher (DeFi/Crypto) в Москве, работа в компании Qenetex
Зарплата: от 4000 $. Москва. Требуемый опыт: 3–6 лет. Полная занятость. Дата публикации: 08.01.2025.
Anonymous Quiz
6%
Function
6%
Method
6%
Def
83%
Fn
#ЧеКак
🤔 Prometheuswireguard
exporter
Это экспортер Prometheus для WireGuard, разработанный на языке Rust.
Он собирает и экспортирует данные из команды wg show all l (или дамп wg show <interface>, если вы указываете файл конфигурации) в формате, который понимает Prometheus.
Экспортер отличается высокой эффективностью использования ресурсов сервера, минимизируя потребление как оперативной памяти, так и процессорного времени. Кроме того, он доступен в виде контейнера Docker для различных архитектур процессоров: amd64, 386, Arm64, Armv7 и Armv6.
👉 Новости 👉 Платформа
exporter
Это экспортер Prometheus для WireGuard, разработанный на языке Rust.
Он собирает и экспортирует данные из команды wg show all l (или дамп wg show <interface>, если вы указываете файл конфигурации) в формате, который понимает Prometheus.
Экспортер отличается высокой эффективностью использования ресурсов сервера, минимизируя потребление как оперативной памяти, так и процессорного времени. Кроме того, он доступен в виде контейнера Docker для различных архитектур процессоров: amd64, 386, Arm64, Armv7 и Armv6.
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
22%
Var
72%
Let
3%
Def
3%
Const
❤2
#Собес
🤔 В чём разница между .unwrap() и .expect() в Rust?
Метод .unwrap() вызывает панику, если значение отсутствует, отображая стандартное сообщение
об ошибке. Метод - .expect() делает то же самое, но позволяет указать собственное сообщение об
ошибке.
👉 Новости 👉 Платформа
Метод .unwrap() вызывает панику, если значение отсутствует, отображая стандартное сообщение
об ошибке. Метод - .expect() делает то же самое, но позволяет указать собственное сообщение об
ошибке.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Anonymous Quiz
13%
I32
10%
F64
20%
Char
57%
String
#полезное
🥺 Наткнулся на топовый видос про создание чата на Rust
В первой части показывают, как собрать многопользовательский TCP-сервер: неблокирующий ввод-вывод, потокобезопасная трансляция сообщений и эффективная обработка клиентов с использованием потоков
Во второй части — клиентская часть. Сделано чётко: тот же неблокирующий ввод-вывод, многопоточность и возможность аккуратно выйти из чата командой :quit
Всё максимально чётко и понятно, смотреть одно удовольствие.
👉 Новости 👉 Платформа
В первой части показывают, как собрать многопользовательский TCP-сервер: неблокирующий ввод-вывод, потокобезопасная трансляция сообщений и эффективная обработка клиентов с использованием потоков
Во второй части — клиентская часть. Сделано чётко: тот же неблокирующий ввод-вывод, многопоточность и возможность аккуратно выйти из чата командой :quit
Всё максимально чётко и понятно, смотреть одно удовольствие.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Разница очевидна 😇
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6❤2