Обновление Rust-библиотеки Ormlib до версии 1.0.1. Что изменилось и почему это важно?
https://habr.com/ru/articles/766064/
https://habr.com/ru/articles/766064/
Хабр
Обновление Rust-библиотеки Ormlib, добавлена поддержка MySQL
Я рад сообщить, что вышла новая версия моей Rust-библиотеки для объектно-реляционного отображения - Ormlib 1.0.1. В этой версии было проделано много работы по улучшению архитектуры библиотеки. В...
👍4🤔4
Самый маленький Docker образ Rust приложения
https://habr.com/ru/articles/766620/
https://habr.com/ru/articles/766620/
Хабр
Самый маленький Docker образ Rust приложения
Где - то там контейнер с маленьким крабом... Привет %username%, эта статья про то, как поместить Rust приложение в Docker и получить образ размером с бинарный файл (6 Мб). А также про причины, которые...
🥱3❤2👏1👌1
Алгебраические Типы Данных
https://habr.com/ru/articles/766682/
https://habr.com/ru/articles/766682/
Хабр
Алгебраические Типы Данных
Что же такое Алгебраические Типы Данных(Algebraic Data Types(ADT))? Обычно определение состоит из терминов теории типов и обязательно с примером на Haskell. Но на практике всё не так сложно. Типы...
👍6❤1🔥1
Сборка мусора: как это делается в системном программировании
https://habr.com/ru/companies/timeweb/articles/766772/
https://habr.com/ru/companies/timeweb/articles/766772/
Хабр
Сборка мусора: как это делается в системном программировании
Давайте поговорим об одной из наиболее критичных по производительности программ, которой вы пользуетесь ежедневно: о вашей операционной системе. Поскольку при каждом разгоне железа вы получаете...
👍8
Когда Zig круче Rust – массивы перечислений, позволяющие сэкономить память
https://habr.com/ru/articles/767036/
https://habr.com/ru/articles/767036/
Хабр
Когда Zig круче Rust — массивы перечислений, позволяющие сэкономить память
Перечисления (или размеченные объединения), отличающиеся вариативностью и, следовательно, размером, провоцируют в Rust серьёзную фрагментацию памяти. Дело в том, что нам приходится выделять достаточно...
❤🔥7❤2🤔2
Как я проектирую и разрабатываю расширения Python на Rust
https://habr.com/ru/articles/767254/
https://habr.com/ru/articles/767254/
Хабр
Как я проектирую и разрабатываю расширения Python на Rust
Вы наверняка видели множество статей на тему "Python, Rust - производительность, бла-бла-бла... Вот, реализуем foo2plus2". Вся беда в том, что все эти статьи демонстрируют очень простые примеры уровня...
❤9🤮3😭1
🔥 Дайджест полезных материалов из мира Rust за неделю
Почитать:
— Как я проектирую и разрабатываю расширения Python на Rust
— Когда Zig круче Rust — массивы перечислений, позволяющие сэкономить память
— Сборка мусора: как это делается в системном программировании
— Алгебраические Типы Данных
— Самый маленький Docker образ Rust приложения
— Обновление Rust-библиотеки Ormlib, добавлена поддержка MySQL
— netcrab: a networking tool
— Learning Rust 🦀: 17 - Rust Collections: Strings - How complex can it be?!
— wtransport - WebTransport in Rust 🦀
— Rust's Option type... in Python
— Package All the Things
— Announcing the PubNub Rust SDK
— Implementing Practical Byzantine Fault Tolerance - part 2
— GreptimeDB v0.4 Officially Launched with New Engine Mito2 Tailored for Time-Series Data Processing
— Socketioxide - Socketio powered by Rust! 🦀🔌
— Tauri: 10 Minute Docs Audits
Посмотреть:
🌐 Chatgpt, Bard , Claude, Theb - используй API лучших нейросетей бесплатно и без ВПН на Python. (⏱ 05:23)
Хорошего дня!
@rust_code
Почитать:
— Как я проектирую и разрабатываю расширения Python на Rust
— Когда Zig круче Rust — массивы перечислений, позволяющие сэкономить память
— Сборка мусора: как это делается в системном программировании
— Алгебраические Типы Данных
— Самый маленький Docker образ Rust приложения
— Обновление Rust-библиотеки Ormlib, добавлена поддержка MySQL
— netcrab: a networking tool
— Learning Rust 🦀: 17 - Rust Collections: Strings - How complex can it be?!
— wtransport - WebTransport in Rust 🦀
— Rust's Option type... in Python
— Package All the Things
— Announcing the PubNub Rust SDK
— Implementing Practical Byzantine Fault Tolerance - part 2
— GreptimeDB v0.4 Officially Launched with New Engine Mito2 Tailored for Time-Series Data Processing
— Socketioxide - Socketio powered by Rust! 🦀🔌
— Tauri: 10 Minute Docs Audits
Посмотреть:
🌐 Chatgpt, Bard , Claude, Theb - используй API лучших нейросетей бесплатно и без ВПН на Python. (⏱ 05:23)
Хорошего дня!
@rust_code
👍8❤3🔥1
Ржавое наследование 2. Славянский проброс Get/Set
https://habr.com/ru/articles/767416/
https://habr.com/ru/articles/767416/
Хабр
Ржавое наследование 2. Славянский проброс Get/Set
Вторая статья по теме, развивающая мои теоретические выкладки про наследование реализаций из первой части. В этой части пойдет речь о доступе к данным через цепочку вложенных структур. Все также...
❤🔥6😁4❤1👍1
Forwarded from Machinelearning
Новый фреймворк глубокого обучения, построенный полностью на Rust, который призван обеспечить баланс между гибкостью, производительностью и простотой использования для исследователей, инженеров ML и разработчиков.
cargo new new_burn_app
ai_machinelearning_big_data
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥8👍7
Быстрое решение для вычисления моделей эмбединга текста.
https://github.com/huggingface/text-embeddings-inference
@rust_code
https://github.com/huggingface/text-embeddings-inference
@rust_code
GitHub
GitHub - huggingface/text-embeddings-inference: A blazing fast inference solution for text embeddings models
A blazing fast inference solution for text embeddings models - huggingface/text-embeddings-inference
❤4👍1
Forwarded from Анализ данных (Data analysis)
📒 GigaChat нового поколения.
Разработчики @gigachat_bot изменили подход к обучению модели, а потому практически все умения модели были улучшены. В частности, речь идет о сокращении текстов, ответов на вопросы и генерации идей.
Появился и бот GigaChat в социальной сети «ВКонтакте» — после активации, его можно использовать для самых разных целей: от создания текстов до генерации изображений (за счет интеграции с Kandinsky).
Число уникальных пользователей GigaChat достигло 1 млн.
• Попробовать
@data_analysis_ml
Разработчики @gigachat_bot изменили подход к обучению модели, а потому практически все умения модели были улучшены. В частности, речь идет о сокращении текстов, ответов на вопросы и генерации идей.
Появился и бот GigaChat в социальной сети «ВКонтакте» — после активации, его можно использовать для самых разных целей: от создания текстов до генерации изображений (за счет интеграции с Kandinsky).
Число уникальных пользователей GigaChat достигло 1 млн.
• Попробовать
@data_analysis_ml
❤6👎3
• Работает на Windows, GNU/Linux и MacOS.
• Поддерживает предварительный просмотр не только изображений или документов, но и видео
#Linux
@rust_code
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7🔥4❤🔥2😱2
Qrcode-encrypted – программа благодаря которой можно создать/читать qrcode с закодированным/зашифрованным текстом
Проект написан на Rust
Доступные методы шифровки/кодировки: base64, hex, morse, rot13, caesar. Также возможно создать qrcode с простым текстом
https://github.com/knoxydev/qrcode-encrypt
Проект написан на Rust
Доступные методы шифровки/кодировки: base64, hex, morse, rot13, caesar. Также возможно создать qrcode с простым текстом
https://github.com/knoxydev/qrcode-encrypt
GitHub
GitHub - knoxydev/qrcode-encrypt: QR code with encrypted content
QR code with encrypted content. Contribute to knoxydev/qrcode-encrypt development by creating an account on GitHub.
👍9❤3☃1🔥1
🔥 Дайджест полезных материалов из мира Rust за неделю
Почитать:
— Что расскажут на PiterPy 2023: много питонов и немного ржавчины
— Программируем биржу: почему мы выбрали Rust?
— Ржавое наследование 2. Славянский проброс Get/Set
— Milvus Adventures
— How I find out IT tools mascots.
— DLLs in Rust🦀
— Learning Rust 🦀: 18 - Rust Collections: HashMaps, accessing values with keys instead of indices
— How to get the code of a letter or an event from my keyboard in hex
— Edge IoT with Rust on ESP: HTTP Server
— How to get the keys without pressing enter in rust ⌨️
— Building Apps with Tauri and Elixir
— Building Nebula - Prologue: A beginning
— Rust web application: MySQL server, sqlx, actix-web and tera.
Посмотреть:
🌐 You Suck At Accessibility (But You Don't Have To) (⏱ 13:23)
🌐 This New Node Feature Is Super Convenient (⏱ 00:43)
Хорошего дня!
@rust_code
Почитать:
— Что расскажут на PiterPy 2023: много питонов и немного ржавчины
— Программируем биржу: почему мы выбрали Rust?
— Ржавое наследование 2. Славянский проброс Get/Set
— Milvus Adventures
— How I find out IT tools mascots.
— DLLs in Rust🦀
— Learning Rust 🦀: 18 - Rust Collections: HashMaps, accessing values with keys instead of indices
— How to get the code of a letter or an event from my keyboard in hex
— Edge IoT with Rust on ESP: HTTP Server
— How to get the keys without pressing enter in rust ⌨️
— Building Apps with Tauri and Elixir
— Building Nebula - Prologue: A beginning
— Rust web application: MySQL server, sqlx, actix-web and tera.
Посмотреть:
🌐 You Suck At Accessibility (But You Don't Have To) (⏱ 13:23)
🌐 This New Node Feature Is Super Convenient (⏱ 00:43)
Хорошего дня!
@rust_code
👍10🔥5❤4👏1
®️Rust: безопасный парсинг с нулевым копированием
Парсеры (в контексте компьютерных технологий) — это программы или алгоритмы, способные преобразовать определенный массив данных в некую структурированную информацию. При обмене данными между устройствами (к примеру, при отправке этой статьи на ваше устройство) парсеры используются для преобразования полученных данных в то, что устройство может обработать.
Учитывая это, легко понять важность подобных алгоритмов, а также значение их эффективности для общей производительности системы. Одним из способов оптимизации таких программ является использование технологии, называемой zero-copy (нулевое копирование).
Парсер с нулевым копированием представляет собой участок кода, который может преобразовывать полученные данные в структурированную форму, не копируя при этом содержимое в новые буферы.
Это отличает данный вид парсеров от прочих, используемых для преобразования части данных в набор значений (например, строки и массивы): программы без нулевого копирования выделяют новую область в куче и копируют в нее соответствующую часть полученных данных.
В качестве примера простейшего парсера с нулевым копированием я создал программу на языке C, которая выполняет парсинг массива байтов в заранее определенный struct. Программа предполагает, что полученные данные будут содержать заголовочный байт, за которым следует строка.
s
Код достаточно прост: в struct перемещается значение примитива (header — заголовок) и указатель на массив символов (payload — полезная нагрузка). Заметим, что хотя некоторые могут назвать эту процедуру копированием, она не выделяет новую память, а лишь выполняет простые инструкции перемещения значений и указателей:
Читать
Парсеры (в контексте компьютерных технологий) — это программы или алгоритмы, способные преобразовать определенный массив данных в некую структурированную информацию. При обмене данными между устройствами (к примеру, при отправке этой статьи на ваше устройство) парсеры используются для преобразования полученных данных в то, что устройство может обработать.
Учитывая это, легко понять важность подобных алгоритмов, а также значение их эффективности для общей производительности системы. Одним из способов оптимизации таких программ является использование технологии, называемой zero-copy (нулевое копирование).
Парсер с нулевым копированием представляет собой участок кода, который может преобразовывать полученные данные в структурированную форму, не копируя при этом содержимое в новые буферы.
Это отличает данный вид парсеров от прочих, используемых для преобразования части данных в набор значений (например, строки и массивы): программы без нулевого копирования выделяют новую область в куче и копируют в нее соответствующую часть полученных данных.
В качестве примера простейшего парсера с нулевым копированием я создал программу на языке C, которая выполняет парсинг массива байтов в заранее определенный struct. Программа предполагает, что полученные данные будут содержать заголовочный байт, за которым следует строка.
s
truct ParsedData {
uint8_t header;
char *payload;
};
void parse_buffer(uint8_t *buffer, struct ParsedData *parsed_data) {
parsed_data->header = buffer[0];
parsed_data->payload = (char *)&buffer[1];
};
Код достаточно прост: в struct перемещается значение примитива (header — заголовок) и указатель на массив символов (payload — полезная нагрузка). Заметим, что хотя некоторые могут назвать эту процедуру копированием, она не выделяет новую память, а лишь выполняет простые инструкции перемещения значений и указателей:
Читать
❤10👍3❤🔥1☃1
🔥 Дайджест полезных материалов из мира Rust за неделю
Почитать:
— Мнение три года спустя: стоил ли того переход с JavaScript на Rust?
— Как в 180 000 раз ускорить анализ данных с помощью Rust
— Schemaless для Uber.
— Интеграция Axum с S3-хранилищем
— Конкурентный отказ
— Как Rust меняет мышление разработчика
— Тест производительности Web-фреймворков для Rust
— Planespotting with Rust: using nom to parse ADS-B messages
— Cryptopals #30: Rust, solution approaches
— Dynamic HTTP API for web & OS dev 🧢
— 🦀⚡ Building extremely fast APIs with Rust & snowboard: Step-by-Step
— How to get the console in raw mode in rust 🖤
— Rust vs. Haskell: A performance comparison
— Building a HTTP Client with Reqwest | Rust
— Database Access Stack in Rust
— Comparison between k_board and termion 🦀⌨️
— OpenAI Language Lector
Посмотреть:
🌐 Did Josh Make A Mistake? (⏱ 06:58)
🌐 This Experimental Chrome Accessibility Feature Is A Game Changer (⏱ 00:48)
Хорошего дня!
Почитать:
— Мнение три года спустя: стоил ли того переход с JavaScript на Rust?
— Как в 180 000 раз ускорить анализ данных с помощью Rust
— Schemaless для Uber.
— Интеграция Axum с S3-хранилищем
— Конкурентный отказ
— Как Rust меняет мышление разработчика
— Тест производительности Web-фреймворков для Rust
— Planespotting with Rust: using nom to parse ADS-B messages
— Cryptopals #30: Rust, solution approaches
— Dynamic HTTP API for web & OS dev 🧢
— 🦀⚡ Building extremely fast APIs with Rust & snowboard: Step-by-Step
— How to get the console in raw mode in rust 🖤
— Rust vs. Haskell: A performance comparison
— Building a HTTP Client with Reqwest | Rust
— Database Access Stack in Rust
— Comparison between k_board and termion 🦀⌨️
— OpenAI Language Lector
Посмотреть:
🌐 Did Josh Make A Mistake? (⏱ 06:58)
🌐 This Experimental Chrome Accessibility Feature Is A Game Changer (⏱ 00:48)
Хорошего дня!
👍8❤2🔥1
Минимальный DNS-сервер, встроенный в Rust, с системой правил и протоколированием.
https://github.com/sammwyy/mindns
https://github.com/sammwyy/mindns
GitHub
GitHub - sammwyy/mindns: Minimal DNS server built in Rust with rule system and logging.
Minimal DNS server built in Rust with rule system and logging. - sammwyy/mindns
👍19🔥3☃1😎1
Векторная база данных Rust теперь работает на базе X (Twitter)
https://github.com/qdrant/qdrant
@rust_code
https://github.com/qdrant/qdrant
@rust_code
GitHub
GitHub - qdrant/qdrant: Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation…
Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/ - qdrant/qdrant
👍9🔥6🤮2🤣1