This media is not supported in your browser
VIEW IN TELEGRAM
Halloy - IRC Client
Halloy - это IRC-клиент с открытым исходным кодом, написанный на Rust с использованием библиотеки Iced GUI. Его цель - предоставить простой и быстрый клиент для платформ Mac, Windows и Linux.
https://github.com/squidowl/halloy
👉 @rust_lib
Halloy - это IRC-клиент с открытым исходным кодом, написанный на Rust с использованием библиотеки Iced GUI. Его цель - предоставить простой и быстрый клиент для платформ Mac, Windows и Linux.
https://github.com/squidowl/halloy
👉 @rust_lib
👍4❤1👏1
Микросервисы Rust в серверном WebAssembly
Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Однако при разработке серверных приложений Rust также представляет определенные трудности. Написанные на Rust программы компилируются в нативный машинный код, который не является портируемым и небезопасен в многопользовательских облачных средах. Нам также не хватает инструментов для управления и оркестрации нативных приложений в облаке.
https://habr.com/ru/companies/timeweb/articles/747582/
👉 @rust_lib
Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Однако при разработке серверных приложений Rust также представляет определенные трудности. Написанные на Rust программы компилируются в нативный машинный код, который не является портируемым и небезопасен в многопользовательских облачных средах. Нам также не хватает инструментов для управления и оркестрации нативных приложений в облаке.
https://habr.com/ru/companies/timeweb/articles/747582/
👉 @rust_lib
❤3👍3🔥1
Криптография на Rust и немного FFI
Начнем с того, что эта статья как и большинство моих статей родилась в процессе разработки. В данном конкретном случае - разработки внешней крипто-библиотеки для генерации крипто-кошельков.
Да, определенно. Я считаю, что приставка "крипто" любому словосочетанию придает привкус гигантской яхты дрейфующей где-то в Майами.
В итоге, выбор упал на Rust потому что я уже работал с ним, и знаю, что crates.io изобилует всякими библиотеками для работы с разнообразными криптографическими функциями.
https://habr.com/ru/articles/748534/
👉 @rust_lib
Начнем с того, что эта статья как и большинство моих статей родилась в процессе разработки. В данном конкретном случае - разработки внешней крипто-библиотеки для генерации крипто-кошельков.
Да, определенно. Я считаю, что приставка "крипто" любому словосочетанию придает привкус гигантской яхты дрейфующей где-то в Майами.
В итоге, выбор упал на Rust потому что я уже работал с ним, и знаю, что crates.io изобилует всякими библиотеками для работы с разнообразными криптографическими функциями.
https://habr.com/ru/articles/748534/
👉 @rust_lib
👍5❤2👏1
Реализуем Type inference на Rust — Часть #1: Unification
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/748978/
👉 @rust_lib
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/748978/
👉 @rust_lib
👍4
Реализуем Type Inference на Rust — Часть #2: Простой Lambda Calculus
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/753180/
👉 @rust_lib
Если вы пишете свой язык программирования, то вы наверное слышали о type inference. В этом цикле статей, без лишней теории, мы наглядно разберем как это работает и реализуем свой на Rust.
https://habr.com/ru/articles/753180/
👉 @rust_lib
👍4❤1
Blaze: ускорение ZK для программируемой пользователем вентильной матрицы
Чтобы сделать ускорение ППВМ, или программируемой пользователем вентильной матрицы, и графического процессора одинаково удобным для разработчиков, в Ingonyama разрабатывают решения-ускорители ППВМ для типовых примитивов ZK.
С Blaze — библиотекой Rust для ускорения ZK на основе ППВМ компании Xilinx — ускорение ППВМ становится доступным для разработчиков ZK.
https://medium.com/@ingonyama/introducing-blaze-zk-acceleration-for-fpga-6f5f7cc50e1f
👉 @rust_lib
Чтобы сделать ускорение ППВМ, или программируемой пользователем вентильной матрицы, и графического процессора одинаково удобным для разработчиков, в Ingonyama разрабатывают решения-ускорители ППВМ для типовых примитивов ZK.
С Blaze — библиотекой Rust для ускорения ZK на основе ППВМ компании Xilinx — ускорение ППВМ становится доступным для разработчиков ZK.
https://medium.com/@ingonyama/introducing-blaze-zk-acceleration-for-fpga-6f5f7cc50e1f
👉 @rust_lib
👍3🔥1🥰1
The Power Of RUST: введение и глубокое погружение в продвинутые концепции: Ownership, References и Borrowing.
Rust используется многими крупными компаниями, такими как Mozilla, Microsoft и Dropbox, он применяется во многих случаях, для создания веб-серверов, интерфейсов командной строки, нативных настольных приложений, веб-приложений с помощью WebAssemblly, а также для операционных систем.
Безопасный и многопоточный язык - это уже здорово, но максимальная производительность будет еще выше, и Rust как раз для этого, это системный язык программирования с компилятором, поэтому он не интерпретируется, как javascript, его компилятор - это ключ к производительным программам и безопасной памяти. Не только производительность, но и продуктивность Rust обусловлена наличием инструментария, такого как менеджер пакетов, тестирование и документация.
https://dev.to/this-is-learning/the-power-of-rust-introduction-and-deep-dive-in-advanced-concepts-ownership-references-and-borrowing-28dh
👉 @rust_lib
Rust используется многими крупными компаниями, такими как Mozilla, Microsoft и Dropbox, он применяется во многих случаях, для создания веб-серверов, интерфейсов командной строки, нативных настольных приложений, веб-приложений с помощью WebAssemblly, а также для операционных систем.
Безопасный и многопоточный язык - это уже здорово, но максимальная производительность будет еще выше, и Rust как раз для этого, это системный язык программирования с компилятором, поэтому он не интерпретируется, как javascript, его компилятор - это ключ к производительным программам и безопасной памяти. Не только производительность, но и продуктивность Rust обусловлена наличием инструментария, такого как менеджер пакетов, тестирование и документация.
https://dev.to/this-is-learning/the-power-of-rust-introduction-and-deep-dive-in-advanced-concepts-ownership-references-and-borrowing-28dh
👉 @rust_lib
👍8❤5🥰1🥱1
Рост производительности машинного обучения с Rust
В этой статье я хочу поделиться своим опытом создания небольшой платформы для машинного обучения (ML) с нуля, используя язык программирования Rust.
Для моего эксперимента у меня были следующие цели:
1 - Я хотел выяснить, приведет ли переход с Python + PyTorch на Rust + LibTorch (библиотеку C++, используемую в PyTorch) к ощутимому увеличению скорости, особенно в процессе обучения модели. Как мы знаем, модели машинного обучения становятся все больше и требуют все больше вычислительных ресурсов для обучения, что иногда недоступно для обычного человека. Один из способов уменьшить требования к аппаратному обеспечению — найти способ сделать алгоритмы более вычислительно эффективными. Зная, что в PyTorch Python является лишь верхним слоем над LibTorch, мой главный вопрос заключался в том, стоит ли заменять этот верхний слой Python на Rust. План заключался в том, чтобы использовать библиотеку Tch-rs Rust для работы с тензорами и функцией автоградента из DLL LibTorch, которая будет выступать в качестве "калькулятора градиентов", а затем разработать остальную часть с нуля на Rust.
2 - Я хотел, чтобы код был достаточно простым для четкого понимания всех выполняемых операций с линейной алгеброй и позволял легко расширять его при необходимости.
3 - Насколько это возможно, моя платформа должна позволять мне определять модели машинного обучения по структуре, аналогичной стандартной Python/PyTorch.
https://betterprogramming.pub/boosting-machine-learning-performance-with-rust-aab1f3ae1424
👉 @rust_lib
В этой статье я хочу поделиться своим опытом создания небольшой платформы для машинного обучения (ML) с нуля, используя язык программирования Rust.
Для моего эксперимента у меня были следующие цели:
1 - Я хотел выяснить, приведет ли переход с Python + PyTorch на Rust + LibTorch (библиотеку C++, используемую в PyTorch) к ощутимому увеличению скорости, особенно в процессе обучения модели. Как мы знаем, модели машинного обучения становятся все больше и требуют все больше вычислительных ресурсов для обучения, что иногда недоступно для обычного человека. Один из способов уменьшить требования к аппаратному обеспечению — найти способ сделать алгоритмы более вычислительно эффективными. Зная, что в PyTorch Python является лишь верхним слоем над LibTorch, мой главный вопрос заключался в том, стоит ли заменять этот верхний слой Python на Rust. План заключался в том, чтобы использовать библиотеку Tch-rs Rust для работы с тензорами и функцией автоградента из DLL LibTorch, которая будет выступать в качестве "калькулятора градиентов", а затем разработать остальную часть с нуля на Rust.
2 - Я хотел, чтобы код был достаточно простым для четкого понимания всех выполняемых операций с линейной алгеброй и позволял легко расширять его при необходимости.
3 - Насколько это возможно, моя платформа должна позволять мне определять модели машинного обучения по структуре, аналогичной стандартной Python/PyTorch.
https://betterprogramming.pub/boosting-machine-learning-performance-with-rust-aab1f3ae1424
👉 @rust_lib
👍7🥰1👏1💩1
Понимание и реализация смарт-указателя Arc и мьютекса на Rust
Rust — язык системного программирования с акцентом на безопасности, многопоточности, производительности. В этом руководстве рассмотрим два примитива многопоточности Rust: Arc и Mutex.
При написании многопоточного Rust рано или поздно встречаются типы Arc и Mutex. Mutex применяется во многих языках, а вот Arc вряд ли найдется где-то еще, кроме Rust. Нельзя полностью понять эти концепции, не связав их с моделью владения Rust. Эта статья — мой подход к пониманию Arc и Mutex в Rust.
https://towardsdev.com/understanding-and-implementing-rusts-arc-and-mutex-b54e8e3c1821
👉 @rust_lib
Rust — язык системного программирования с акцентом на безопасности, многопоточности, производительности. В этом руководстве рассмотрим два примитива многопоточности Rust: Arc и Mutex.
При написании многопоточного Rust рано или поздно встречаются типы Arc и Mutex. Mutex применяется во многих языках, а вот Arc вряд ли найдется где-то еще, кроме Rust. Нельзя полностью понять эти концепции, не связав их с моделью владения Rust. Эта статья — мой подход к пониманию Arc и Mutex в Rust.
https://towardsdev.com/understanding-and-implementing-rusts-arc-and-mutex-b54e8e3c1821
👉 @rust_lib
👍7❤4🔥1
Полезные фичи в Rust
Rust — это мощный и безопасный язык, его часто выбирают благодаря способности предотвращать множество распространённых ошибок на стадии компиляции. Сегодня я хочу рассказать о некоторых фичах, которые, возможно, уже знакомы вам, но точно заслуживают внимания тех, кто с ними еще не знаком.
https://habr.com/ru/companies/otus/articles/833498/
👉 @rust_lib
Rust — это мощный и безопасный язык, его часто выбирают благодаря способности предотвращать множество распространённых ошибок на стадии компиляции. Сегодня я хочу рассказать о некоторых фичах, которые, возможно, уже знакомы вам, но точно заслуживают внимания тех, кто с ними еще не знаком.
https://habr.com/ru/companies/otus/articles/833498/
👉 @rust_lib
👍10❤3🔥2
ytdlp-gui
Это графический интерфейс для yt-dlp, написанный на Rust
Его можно легко установить в GNU/Linux и Windows системах
https://github.com/BKSalman/ytdlp-gui
👉 @rust_lib
Это графический интерфейс для yt-dlp, написанный на Rust
Его можно легко установить в GNU/Linux и Windows системах
https://github.com/BKSalman/ytdlp-gui
👉 @rust_lib
👍7👏3❤2
Просто спарсь что угодно с помощью языка Rust (ну… или просто скачай файл)
Известно, что Rust — типобезопасный язык программирования, код которого проверяется компилятором ещё до сборки. С одной стороны это хорошо: меньше вероятности внезапного сбоя в самый неподходящий момент. С другой стороны — код, выполняющий одну функцию, в итоге может стать очень сложным и иногда нечитаемым.
В пример привожу функцию, которая парсит названия валют с сайта floatrates и выводит их (пожалуйста, напишите в комментариях, за сколько минут вы поняли эту строку):
В этой статье я хочу рассказать о своей новой библиотеке, значительно упрощающей парсинг на Rust. Приятного чтения!
https://habr.com/ru/articles/755728/
👉 @rust_lib
Известно, что Rust — типобезопасный язык программирования, код которого проверяется компилятором ещё до сборки. С одной стороны это хорошо: меньше вероятности внезапного сбоя в самый неподходящий момент. С другой стороны — код, выполняющий одну функцию, в итоге может стать очень сложным и иногда нечитаемым.
В пример привожу функцию, которая парсит названия валют с сайта floatrates и выводит их (пожалуйста, напишите в комментариях, за сколько минут вы поняли эту строку):
// main.rs
use anyhow::anyhow;
use reqwest::blocking::get;
use scraper::{Html, Selector};
fn main() -> anyhow::Result<()> {
let body = get("http://www.floatrates.com/json-feeds.html")?.text()?;
let document = Html::parse_document(&body);
let selector = Selector::parse("div.bk-json-feeds>div.body>ul>li>a")
.map_err(|err| anyhow!("{err}"))?;
for element in document.select(&selector) {
println!("{}", element.inner_html());
}
Ok(())
}
В этой статье я хочу рассказать о своей новой библиотеке, значительно упрощающей парсинг на Rust. Приятного чтения!
https://habr.com/ru/articles/755728/
👉 @rust_lib
👍13😱3🔥2🤯2
Regex engine internals as a library [full]
Дисклеймер
Это полный перевод большой и сложной статьи по внутреннему устройству крейта regex свежей версии. Перевод большей частью выполнялся для себя, чтобы поднабить скилл в английском. По возможности постарался сохранить авторский стиль.
Если всегда было интересно, как оно там под капотом устроено, а в книге Фриддла или в книге дракона вы не нашли подробностей, то добро пожаловать - будет интересно и очень сложно.
Для понимания потребуются:
🟢 Знания основ теории автоматов (знать и понимать отличия ДКА от НКА)
🟢 Иметь базовое представление о том, что такое регулярные выражения
🟢 Начальные знания по языку Rust
🟢 Общие представления отличия различных структур данных друг от друга
https://habr.com/ru/articles/755940/
original https://blog.burntsushi.net/regex-internals/
👉 @rust_lib
Дисклеймер
Это полный перевод большой и сложной статьи по внутреннему устройству крейта regex свежей версии. Перевод большей частью выполнялся для себя, чтобы поднабить скилл в английском. По возможности постарался сохранить авторский стиль.
Если всегда было интересно, как оно там под капотом устроено, а в книге Фриддла или в книге дракона вы не нашли подробностей, то добро пожаловать - будет интересно и очень сложно.
Для понимания потребуются:
https://habr.com/ru/articles/755940/
original https://blog.burntsushi.net/regex-internals/
👉 @rust_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Huey
Генерирует гифку, которая циклически перебирает все оттенки!
https://github.com/ahhhh6980/huey
👉 @rust_lib
Генерирует гифку, которая циклически перебирает все оттенки!
https://github.com/ahhhh6980/huey
👉 @rust_lib
👍4❤1🔥1
Rust.for.Network.Programming.and.Automation.pdf
1.3 MB
Rust for Network Programming and Automation, 2nd Edition: Work around designing networks, TCP/IP protocol, packet analysis and performance monitoring using Rust 1.68
Автор: Gilbert Stew (2024)
Разработанная с учетом потребностей тех, кто интересуется сетевым программированием и автоматизацией, эта обновленная книга исследует реалистичность сетевого программирования в рамках надежной экосистемы Rust. Построенная на базе Rust 1.68, эта книга шаг за шагом проведет вас через основы сетевых протоколов, анализа пакетов и сетевого администрирования с помощью актуального и подробного материала.
👉 @rust_lib
Автор: Gilbert Stew (2024)
Разработанная с учетом потребностей тех, кто интересуется сетевым программированием и автоматизацией, эта обновленная книга исследует реалистичность сетевого программирования в рамках надежной экосистемы Rust. Построенная на базе Rust 1.68, эта книга шаг за шагом проведет вас через основы сетевых протоколов, анализа пакетов и сетевого администрирования с помощью актуального и подробного материала.
👉 @rust_lib
👍9❤3🥰2👾1
Как я написал JVM на Rust
В последнее время я серьезно взялся за изучение языка Rust, и, как поступил бы на моем месте любой адекватный программист, после написания нескольких небольших программ я решил попробовать сделать что-то немного более амбициозное: я написал на Rust виртуальную машину Java. Не став сильно оригинальничать, я назвал ее просто rjvm. Вы можете найти ее код на GitHub.
Хочу подчеркнуть, что это лишь простенькая модель JVM, созданная в учебных целях, а не серьезная реализация. В частности, она не поддерживает:
⚫️ дженерики
⚫️ потоки
⚫️ рефлексию
⚫️ аннотации
⚫️ I/O
⚫️ just in time компилятор
⚫️ интернирование строк
https://habr.com/ru/companies/otus/articles/755946/
original https://andreabergia.com/blog/2023/07/i-have-written-a-jvm-in-rust/
👉 @rust_lib
В последнее время я серьезно взялся за изучение языка Rust, и, как поступил бы на моем месте любой адекватный программист, после написания нескольких небольших программ я решил попробовать сделать что-то немного более амбициозное: я написал на Rust виртуальную машину Java. Не став сильно оригинальничать, я назвал ее просто rjvm. Вы можете найти ее код на GitHub.
Хочу подчеркнуть, что это лишь простенькая модель JVM, созданная в учебных целях, а не серьезная реализация. В частности, она не поддерживает:
https://habr.com/ru/companies/otus/articles/755946/
original https://andreabergia.com/blog/2023/07/i-have-written-a-jvm-in-rust/
👉 @rust_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3👏3
Битовые поля в Rust
В этой статье мы рассмотрим использование битовых полей в Rust и их значимость для создания оптимизированных приложений, работающих с сетевыми протоколами. Битовые поля позволяют компактно представлять данные, минимизируя использование памяти и повышая производительность.
https://habr.com/ru/companies/otus/articles/845190/
👉 @rust_lib
В этой статье мы рассмотрим использование битовых полей в Rust и их значимость для создания оптимизированных приложений, работающих с сетевыми протоколами. Битовые поля позволяют компактно представлять данные, минимизируя использование памяти и повышая производительность.
https://habr.com/ru/companies/otus/articles/845190/
👉 @rust_lib
👍8👎2❤1🥰1
Шпаргалка по Rust
Основные понятия
- Переменные и типы данных:
- По умолчанию переменные являются неизменяемыми. Для создания изменяемой переменной используйте
- Основные типы данных:
- Целые числа:
- Числа с плавающей точкой:
- Логический тип:
- Символ:
- Строки:
- Функции:
- Определение функции:
- Пример функции:
- Управляющие конструкции:
- Условия:
- Циклы:
- Цикл `loop`:
- Цикл `for`:
- Цикл `while`:
Структуры и перечисления
- Структуры:
Пример:
- Перечисления:
Пример:
Введение в владение и заимствование
- Владение: Каждый ресурс в Rust имеет единственного владельца.
- Заимствование:
- Неизменяемое заимствование:
- Изменяемое заимствование:
Обработка ошибок
- Результат:
Пример функции с обработкой ошибок:
- Паника:
- Используйте
Обобщения
- Обобщенные типы позволяют писать более универсальный код:
Работа с модулями
- Создание модуля:
- Импорт модуля:
Стандартные библиотеки
- Работа с коллекциями:
- Векторы:
- Хэш-таблицы:
Полезные команды
- Компиляция и выполнение:
- Запуск тестов:
👉 @rust_lib
Основные понятия
- Переменные и типы данных:
- По умолчанию переменные являются неизменяемыми. Для создания изменяемой переменной используйте
mut
.
let mut x = 5; // изменяемая переменная
x = 10; // корректно
- Основные типы данных:
- Целые числа:
i32
, u32
, i64
, u64
, isize
, usize
.- Числа с плавающей точкой:
f32
, f64
.- Логический тип:
bool
.- Символ:
char
.- Строки:
String
(изменяемая) и &str
(неизменяемая).- Функции:
- Определение функции:
fn имя_функции(параметры: Тип) -> Тип {
// тело функции
}
- Пример функции:
fn add(x: i32, y: i32) -> i32 {
x + y
}
- Управляющие конструкции:
- Условия:
if условие {
// код
} else if условие {
// код
} else {
// код
}
- Циклы:
- Цикл `loop`:
loop {
// бесконечный цикл
}
- Цикл `for`:
for элемент in коллекция {
// код
}
- Цикл `while`:
while условие {
// код
}
Структуры и перечисления
- Структуры:
struct ИмяСтруктуры {
поле1: Тип,
поле2: Тип,
}
Пример:
struct Point {
x: i32,
y: i32,
}
- Перечисления:
enum ИмяПеречисления {
Вариант1,
Вариант2,
}
Пример:
enum Direction {
Up,
Down,
Left,
Right,
}
Введение в владение и заимствование
- Владение: Каждый ресурс в Rust имеет единственного владельца.
- Заимствование:
- Неизменяемое заимствование:
let s = String::from("Hello");
let r = &s; // r — неизменяемая ссылка на s
- Изменяемое заимствование:
let mut s = String::from("Hello");
let r = &mut s; // r — изменяемая ссылка на s
Обработка ошибок
- Результат:
enum Result<T, E> {
Ok(T),
Err(E),
}
Пример функции с обработкой ошибок:
fn divide(x: i32, y: i32) -> Result<i32, String> {
if y == 0 {
Err(String::from("Деление на ноль"))
} else {
Ok(x / y)
}
}
- Паника:
- Используйте
panic!()
для критических ошибок, которые нельзя обработать.Обобщения
- Обобщенные типы позволяют писать более универсальный код:
fn print_vector<T: std::fmt::Debug>(vec: Vec<T>) {
println!("{:?}", vec);
}
Работа с модулями
- Создание модуля:
mod имя_модуля {
pub fn функция() {
// код
}
}
- Импорт модуля:
use имя_модуля::функция;
Стандартные библиотеки
- Работа с коллекциями:
- Векторы:
let mut vec = Vec::new();
vec.push(1);
vec.push(2);
- Хэш-таблицы:
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert("ключ", "значение");
Полезные команды
- Компиляция и выполнение:
cargo build # Компиляция проекта
cargo run # Запуск проекта
- Запуск тестов:
cargo test
👉 @rust_lib
👍25❤6🔥4😁2👎1🥰1
Попробуйте Tauri
Хочу рассказать про один из моих любимых Opensource проектов: Tauri. Это среда для создания десктопно-мобильных приложений на JavaScript, но быстрых и легковесных. С опциональными дополнениями на Rust, а через него и на всех других языках.
Достоинства
Поддерживается Линь, Вынь и Дрюнь и всякое Ябло. EXEшник HelloWorld весит 1 мегабайт ( ну 5, если не ужиматься в угол как сирота в барском доме ). В памяти занимает на Win 11 200 Мб. (Из них >90% приходится на системные компоненты, расшаренные с другими программами. Поэтому простые средства измерения покажут 5 Мб). Кто-то считает, что это много. Покажите меньше. Только HelloWorld у нас будет такой: в верхней половине окна играет видео с вэба со звуком, а под ним кнопка закрыть, которая при наведении мыши начинает вращаться, и оба эти компонента рендерятся на GPU.
https://habr.com/ru/articles/850192/
👉 @rust_lib
Хочу рассказать про один из моих любимых Opensource проектов: Tauri. Это среда для создания десктопно-мобильных приложений на JavaScript, но быстрых и легковесных. С опциональными дополнениями на Rust, а через него и на всех других языках.
Достоинства
Поддерживается Линь, Вынь и Дрюнь и всякое Ябло. EXEшник HelloWorld весит 1 мегабайт ( ну 5, если не ужиматься в угол как сирота в барском доме ). В памяти занимает на Win 11 200 Мб. (Из них >90% приходится на системные компоненты, расшаренные с другими программами. Поэтому простые средства измерения покажут 5 Мб). Кто-то считает, что это много. Покажите меньше. Только HelloWorld у нас будет такой: в верхней половине окна играет видео с вэба со звуком, а под ним кнопка закрыть, которая при наведении мыши начинает вращаться, и оба эти компонента рендерятся на GPU.
https://habr.com/ru/articles/850192/
👉 @rust_lib
👍12❤1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Pake
🤱🏻 Превратите любую веб-страницу в настольное приложение с помощью Rust.
Pake поддерживает Mac, Windows и Linux.
https://github.com/tw93/Pake
👉 @rust_lib
🤱🏻 Превратите любую веб-страницу в настольное приложение с помощью Rust.
Pake поддерживает Mac, Windows и Linux.
https://github.com/tw93/Pake
👉 @rust_lib
👍14❤3🥰1