This media is not supported in your browser
VIEW IN TELEGRAM
Ratatui
Библиотека Rust, предназначенная для создания терминальных пользовательских интерфейсов (TUI).
https://github.com/tui-rs-revival/ratatui
👉 @rust_lib
Библиотека Rust, предназначенная для создания терминальных пользовательских интерфейсов (TUI).
https://github.com/tui-rs-revival/ratatui
👉 @rust_lib
Самая маленькая хеш-таблица в мире
1 декабря я в очередной раз поучаствовал в Advent of Code, написав программу на Rust. Если интересно — код можно найти на GitHub. Тут мне хотелось бы рассказать о моём решении задачи, предлагавшейся во 2 день мероприятия, так как это решение, с одной стороны, сверх всякой меры оптимизировано, а с другой — демонстрирует кое-какие полезные приёмы. Чтобы не усложнять себе жизнь — мы рассмотрим лишь первую часть задачи, но те же приёмы можно применить и к её второй части.
Мы начнём входить в курс дела не спеша, но я предлагаю вам не отклоняться от заданного мной курса, так как, после того, как вы полностью прочтёте этот материал, у вас должно появиться понимание того, что именно делает следующая функция, как она работает, как такую функцию написать, и того, почему это — самая маленькая в мире хеш-таблица:
Rus https://habr.com/ru/companies/wunderfund/articles/723536/
Eng https://orlp.net/blog/worlds-smallest-hash-table/
👉 @rust_lib
1 декабря я в очередной раз поучаствовал в Advent of Code, написав программу на Rust. Если интересно — код можно найти на GitHub. Тут мне хотелось бы рассказать о моём решении задачи, предлагавшейся во 2 день мероприятия, так как это решение, с одной стороны, сверх всякой меры оптимизировано, а с другой — демонстрирует кое-какие полезные приёмы. Чтобы не усложнять себе жизнь — мы рассмотрим лишь первую часть задачи, но те же приёмы можно применить и к её второй части.
Мы начнём входить в курс дела не спеша, но я предлагаю вам не отклоняться от заданного мной курса, так как, после того, как вы полностью прочтёте этот материал, у вас должно появиться понимание того, что именно делает следующая функция, как она работает, как такую функцию написать, и того, почему это — самая маленькая в мире хеш-таблица:
pub fn phf_shift(x: u32) -> u8 {
let shift = x.wrapping_mul(0xa463293e) >> 27;
((0x824a1847u32 >> shift) & 0b11111) as u8
}
Rus https://habr.com/ru/companies/wunderfund/articles/723536/
Eng https://orlp.net/blog/worlds-smallest-hash-table/
👉 @rust_lib
Media is too big
VIEW IN TELEGRAM
Игровой движок написанный на Rust
Ambient - это кроссплатформенная среда исполнения с открытым исходным кодом и платформа для создания, развертывания и совместного использования высокопроизводительных многопользовательских игр в Интернете, на рабочем столе и в других местах. Основанная на Rust, WebAssembly (WASM) и WebGPU, Ambient является передовой, оставаясь при этом верной своей цели: сделать разработку игр увлекательной и доступной.
https://github.com/AmbientRun/Ambient
👉 @rust_lib
Ambient - это кроссплатформенная среда исполнения с открытым исходным кодом и платформа для создания, развертывания и совместного использования высокопроизводительных многопользовательских игр в Интернете, на рабочем столе и в других местах. Основанная на Rust, WebAssembly (WASM) и WebGPU, Ambient является передовой, оставаясь при этом верной своей цели: сделать разработку игр увлекательной и доступной.
https://github.com/AmbientRun/Ambient
👉 @rust_lib
Wtftw
Window Tiling For The Win. Менеджер черепичных окон, написанный на Rust
https://github.com/Kintaro/wtftw
👉 @rust_lib
Window Tiling For The Win. Менеджер черепичных окон, написанный на Rust
https://github.com/Kintaro/wtftw
👉 @rust_lib
Запуск Rocket REST API на AWS
Что понадобится
языка программирования Rust;
команд оболочки в Linux;
AWS Elastic Compute Cloud (EC2) и сетей;
учетная запись AWS.
Что будем разворачивать?
Очень простой Rocket REST API с двумя маршрутами: / и /sort. Первый маршрут — это индекс. После GET-запроса он отправит текст Hello from Rocket REST API!. Второй — POST-маршрут. По нему в приложении в ответ на заданный несортированный целочисленный массив и порядок сортировки вернется корректно отсортированный массив.
https://betterprogramming.pub/launching-a-rocket-rest-api-on-aws-d8c17f0c9850
👉 @rust_lib
Rocket.rs
— самый известный фреймворк на Rust для легкого создания производительных и типобезопасных веб-приложений. Развернем с его помощью собственный Rocket REST API на AWS.Что понадобится
языка программирования Rust;
команд оболочки в Linux;
AWS Elastic Compute Cloud (EC2) и сетей;
учетная запись AWS.
Что будем разворачивать?
Очень простой Rocket REST API с двумя маршрутами: / и /sort. Первый маршрут — это индекс. После GET-запроса он отправит текст Hello from Rocket REST API!. Второй — POST-маршрут. По нему в приложении в ответ на заданный несортированный целочисленный массив и порядок сортировки вернется корректно отсортированный массив.
https://betterprogramming.pub/launching-a-rocket-rest-api-on-aws-d8c17f0c9850
👉 @rust_lib
Использование scoped threads Rust для повышения эффективности и безопасности
В прошлом крейт crossbeam предоставлял возможность создавать скопированные потоки. Но теперь его функция scoped thread была мягко устаревшей в пользу встроенной в Rust функции scoped thread.
В этой статье вы узнаете, что такое scoped threads, как они функционируют, как их создавать и чем они отличаются от unscoped threads.
https://blog.logrocket.com/using-rust-scoped-threads-improve-efficiency-safety/
👉 @rust_lib
В прошлом крейт crossbeam предоставлял возможность создавать скопированные потоки. Но теперь его функция scoped thread была мягко устаревшей в пользу встроенной в Rust функции scoped thread.
В этой статье вы узнаете, что такое scoped threads, как они функционируют, как их создавать и чем они отличаются от unscoped threads.
https://blog.logrocket.com/using-rust-scoped-threads-improve-efficiency-safety/
👉 @rust_lib
Rust: выполнение HTTP-запросов и обработка ответов с помощью reqwest
В Rust HTTP-запросы и парсинг результата выполнять легко — нужны лишь подходящие библиотеки. reqwest и serde могут стать идеальным решением.
https://telegra.ph/Rust-vypolnenie-HTTP-zaprosov-i-obrabotka-otvetov-s-pomoshchyu-reqwest-02-05
Original https://levelup.gitconnected.com/rust-making-http-requests-and-handling-responses-by-using-reqwest-c8d557cdce46
👉 @rust_lib
В Rust HTTP-запросы и парсинг результата выполнять легко — нужны лишь подходящие библиотеки. reqwest и serde могут стать идеальным решением.
https://telegra.ph/Rust-vypolnenie-HTTP-zaprosov-i-obrabotka-otvetov-s-pomoshchyu-reqwest-02-05
Original https://levelup.gitconnected.com/rust-making-http-requests-and-handling-responses-by-using-reqwest-c8d557cdce46
👉 @rust_lib
Создание микросервисов на Rust с помощью Spin
Rust предлагает мощный и эффективный подход к разработке приложений. А с помощью Spin создавать мощные микросервисы для распределенных приложений стало намного проще. Преимущества производительности Rust в сочетании с простотой использования и масштабируемостью Spin делают их ценным выбором для разработчиков, стремящихся создавать надежные и масштабируемые системы.
В этой статье мы расскажем вам о фреймворке Spin и проведем вас через создание простого микросервиса.
https://blog.logrocket.com/build-microservices-rust-spin/
👉 @rust_lib
Rust предлагает мощный и эффективный подход к разработке приложений. А с помощью Spin создавать мощные микросервисы для распределенных приложений стало намного проще. Преимущества производительности Rust в сочетании с простотой использования и масштабируемостью Spin делают их ценным выбором для разработчиков, стремящихся создавать надежные и масштабируемые системы.
В этой статье мы расскажем вам о фреймворке Spin и проведем вас через создание простого микросервиса.
https://blog.logrocket.com/build-microservices-rust-spin/
👉 @rust_lib
Фича-флаги времени компиляции в Rust: зачем, как и когда используются
Возможность указывать фичи (функционал) для компиляции в Rust может повысить быстродействие кода, его обслуживаемость, безопасность и портируемость.
Ниже я аргументирую, почему вам следует активно использовать эти флаги функционала при потреблении зависимостей и предлагать их другим пользователям библиотеки.
https://betterprogramming.pub/compile-time-feature-flags-in-rust-why-how-when-129aada7d1b3
👉 @rust_lib
Возможность указывать фичи (функционал) для компиляции в Rust может повысить быстродействие кода, его обслуживаемость, безопасность и портируемость.
Ниже я аргументирую, почему вам следует активно использовать эти флаги функционала при потреблении зависимостей и предлагать их другим пользователям библиотеки.
https://betterprogramming.pub/compile-time-feature-flags-in-rust-why-how-when-129aada7d1b3
👉 @rust_lib
Пишем на Python как на Rust
Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.
https://habr.com/ru/articles/736842/
original https://kobzol.github.io/rust/python/2023/05/20/writing-python-like-its-rust.html
👉 @rust_lib
Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать Rust, я обычно писал код на Python очень динамично, без подсказок типов, повсюду передавая и возвращая словари и время от времени возвращаясь к интерфейсам со «строковой типизацией». Однако, испытав на себе строгость системы типов Rust и заметив все проблемы, которые она предотвращает, я внезапно стал сильно беспокоиться всякий раз, когда возвращался к Python и не получал тех же гарантий.
https://habr.com/ru/articles/736842/
original https://kobzol.github.io/rust/python/2023/05/20/writing-python-like-its-rust.html
👉 @rust_lib
Хабр
Пишем на Python как на Rust
Я начал программировать на Rust несколько лет назад, и это постепенно изменило мой подход к разработке программ на других языках программирования, особенно на Python. До того, как я начал использовать...
This media is not supported in your browser
VIEW IN TELEGRAM
Wagyu
Библиотека Rust для быстрого и простого создания криптовалютных кошельков, которую можно использовать как утилиту командной строки или создавать на базе нее криптовалютные приложения.
https://github.com/AleoHQ/wagyu
👉 @rust_lib
Библиотека Rust для быстрого и простого создания криптовалютных кошельков, которую можно использовать как утилиту командной строки или создавать на базе нее криптовалютные приложения.
https://github.com/AleoHQ/wagyu
👉 @rust_lib
Rust: параметризуем мутабельность через маркеры и ассоциированные типы
Borrow-checker — отличный секюрити, который очень эффективен, если мы находимся в безопасном Rust. Его поведение отлично описано в RustBook, и, по крайней мере, я почти никогда не сталкиваюсь с придирками, которым я бы не был благодарен.
Но вот когда нужно написать семантически-безопасный API над функциями и данными, которые вообще не безопасны — у меня всё стало валиться из рук. Последние пару дней я потратил на то, чтобы придумать элегантный способ параметризации мутабельности. Над тем, чтобы на уровне API сохранялась семантика — зависимость изменяемости полей друг от друга. Даже если на самом деле они живут сами по себе.
https://habr.com/ru/articles/703018/
👉 @rust_lib
Borrow-checker — отличный секюрити, который очень эффективен, если мы находимся в безопасном Rust. Его поведение отлично описано в RustBook, и, по крайней мере, я почти никогда не сталкиваюсь с придирками, которым я бы не был благодарен.
Но вот когда нужно написать семантически-безопасный API над функциями и данными, которые вообще не безопасны — у меня всё стало валиться из рук. Последние пару дней я потратил на то, чтобы придумать элегантный способ параметризации мутабельности. Над тем, чтобы на уровне API сохранялась семантика — зависимость изменяемости полей друг от друга. Даже если на самом деле они живут сами по себе.
https://habr.com/ru/articles/703018/
👉 @rust_lib
Я написал одну из самых быстрых библиотек датафреймов
У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.
Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
https://habr.com/ru/companies/timeweb/articles/737808/
👉 @rust_lib
У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.
Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
https://habr.com/ru/companies/timeweb/articles/737808/
👉 @rust_lib
Это слишком опасно для C++
Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.
Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.
Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.
https://habr.com/ru/articles/793868/
👉 @rust_lib
Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.
Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.
Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.
https://habr.com/ru/articles/793868/
👉 @rust_lib
Как IndVarSimplification применяет математику в вашем коде
Хочу поделиться своей историей расследования одной довольно необычной компиляторной оптимизации. Необычна она в том плане, что для нее производятся довольно нетривиальные математические вычисления. Приступим!
https://habr.com/ru/articles/738272/
👉 @rust_lib
Хочу поделиться своей историей расследования одной довольно необычной компиляторной оптимизации. Необычна она в том плане, что для нее производятся довольно нетривиальные математические вычисления. Приступим!
https://habr.com/ru/articles/738272/
👉 @rust_lib
Глубокая нейронная сеть с нуля на Rust 🦀
Часть 1. Основы нейронных сетей
https://www.akshaymakes.com/blogs/rust_dnn_part1
Часть 2. Загрузка данных и инициализация модели NN
https://www.akshaymakes.com/blogs/rust_dnn_part2
Часть 3. Прямое распространение
https://www.akshaymakes.com/blogs/rust_dnn_part3
Часть 4. Функция потерь и обратное распространение
https://www.akshaymakes.com/blogs/rust_dnn_part4
Часть 5. Обучение и выводы
https://www.akshaymakes.com/blogs/rust_dnn_part_5
👉 @rust_lib
Часть 1. Основы нейронных сетей
https://www.akshaymakes.com/blogs/rust_dnn_part1
Часть 2. Загрузка данных и инициализация модели NN
https://www.akshaymakes.com/blogs/rust_dnn_part2
Часть 3. Прямое распространение
https://www.akshaymakes.com/blogs/rust_dnn_part3
Часть 4. Функция потерь и обратное распространение
https://www.akshaymakes.com/blogs/rust_dnn_part4
Часть 5. Обучение и выводы
https://www.akshaymakes.com/blogs/rust_dnn_part_5
👉 @rust_lib
Joshuto
ranger-подобный терминальный файловый менеджер, написанный на Rust
https://github.com/kamiyaa/joshuto
👉 @rust_lib
ranger-подобный терминальный файловый менеджер, написанный на Rust
https://github.com/kamiyaa/joshuto
👉 @rust_lib
Пишем калькулятор на Rust с GUI
Зачем еще один калькулятор? Да не зачем, просто как тестовый проект для рассмотрения GUI-библиотеки.
Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.
Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.
https://habr.com/ru/articles/804655/
👉 @rust_lib
Зачем еще один калькулятор? Да не зачем, просто как тестовый проект для рассмотрения GUI-библиотеки.
Изначально я хотел попробовать такие крейты, как GPUI, Floem и Xilem, но первая, кажется, пока работает только под MacOS и Linux, вторая не позволяет установить иконку окну и кушает оперативы побольше Webview в Tauri, а до третьей я так и не добрался, узнав об Slint.
Об Slint есть всего несколько новостных постов на Хабре, поэтому, возможно, вам будет интересно посмотреть, что это такое.
https://habr.com/ru/articles/804655/
👉 @rust_lib