Обновить
67.27

Rust *

Мультипарадигмальный компилируемый язык

Сначала показывать
Порог рейтинга
Уровень сложности

Git в браузере. Расширяем возможности с помощью LFS

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели5.4K

Привет, Хабр! Я Паша, разработчик Gramax — Open Source платформы для управления документацией в подходе Docs as Code.

В прошлой статье я рассказывал о том, как мы переводили наше приложение с Isomorphic Git на libgit2, как засунули его в веб-версию приложения при помощи Emscripten и с какими трудностями столкнулись в процессе.

На этот раз — как мы оптимизировали хранение файлов ресурсов каталога (в большинстве случаев, изображений) при помощи Git LFS, тем самым ускорив его клонирование и синхронизацию.

Читать далее

Новости

Пишем свою мобильную ОС с нуля на Rust. Часть 2. Менеджер памяти

Уровень сложностиСредний
Время на прочтение37 мин
Охват и читатели7.3K

В прошлой части мы загрузили своё мобильное ядро, вывели "Hello world" в UART и нарисовали квадратик на экране.

В этой части я покажу, как улучшилось ядро за это время: поддержка новых устройств (запуск и отладка в QEMU и Raspberry Pi 5), разбиение на модули, и, наконец, полноценный менеджер памяти. В этом нам очень поможет система типов Rust.

Читать далее

Как я писал библиотеку для локализации на Rust

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.3K

Эта статья посвящена тому, как я делал библиотеку локализации на Rust. От разработки для своего приложения до полноценного универсального решения.

Читать далее

Делаем приложение на Расте с GUI нестандартным способом

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели9.5K

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

Читать далее

Kawai-Focus 2.2: Python-бинарник в Tauri — проблемы и альтернативы

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели8.3K

В данной статье я расскажу, с какими проблемами, связанными с бинарником, столкнулось моё решение при запуске на Arch Linux у моих знакомых, и почему у меня оно работает нормально на Debian 12 и 13. Также я разберу преимущества и недостатки текущей реализации, покажу возможные пути решения и альтернативы, а лучшее решение применю на практике.

Я снова попрошу Сергея и Ивана запустить моё приложение на Arch Linux, чтобы проверить его работу.

Заваривайте чай, доставайте вкусняшки — пора «удобрять почву для выращивания помидоров»! 🍅

Читать далее

Как я написал TTS-движок на Rust за месяц: путь от Python к production-ready решению

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели13K

Что будет, если выкинуть Python-обвязку и сделать TTS по-взрослому?

Я взял Qwen3-TTS и за месяц собрал RustTTS: компактный бинарник, быстрый старт, стриминг и контролируемый инференс без “venv на 2 ГБ”.

Покажу, как устроен пайплайн (text → tokens → audio), где реально узкие места, какие оптимизации дают эффект, и почему RTF на CPU может быть конкурентным, если не стрелять себе в ногу архитектурой.

Читать далее

Пишем свой git: минимальная реализация на Rust

Время на прочтение5 мин
Охват и читатели8.9K

Контроль версий долгое время был для меня «чёрным ящиком»: я не понимал, как именно хранятся файлы, как формируются diff’ы и из чего состоят коммиты. А поскольку я люблю изобретать велосипеды, почему бы не попробовать реализовать git самому?

Читать далее

Тестирование Telegram-ботов в CI/CD: токены не нужны

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

Типичная настройка CI для Telegram-бота: в секретах лежит токен, тесты ходят в реальный API, пайплайн занимает 10-15 минут и периодически падает на ровном месте. Таймауты, rate limits, протухший токен, который забыли обновить. Знакомая ситуация.

В этой статье разберём, как настроить CI/CD для Telegram-бота так, чтобы не нужны были ни токены, ни сеть, ни повторные запуски упавших тестов.

Читать далее

Почему мы терпим факс в эпоху ИИ: Манифест Суверенной Инфраструктуры

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

Неделю назад мы опубликовали статью «Почему финтеху нужен капитальный ремонт„, а до этого „От стартапа к протоколу: Почему мы решили написать свой „PostgreSQL для финансов“„. Мы получили много комментариев — от умеренных до резко критических. И я хочу начать с благодарности.“““»

Спасибо тем, кто нашел баги в нашем UI (мы всё поправили). Спасибо тем, кто писал «зачем это нужно, если есть PostgreSQL?». Спасибо даже тем, кто называл проект «велосипедом„.“»

Именно ваша критика заставила нас пересмотреть приоритеты и за неделю реализовать то, что мы откладывали месяцами: Atomic PvP (атомарный обмен валют) и ISO 20022 "в ядре".

Мы поняли, что не смогли донести главную мысль. Qazna - это не просто "еще один леджер". Это попытка ответить на вопрос, который IT-сообщество почему-то боится задавать.

Читать далее

Unsafe Rust для FFI: безопасные обёртки над C-библиотеками без утечек памяти

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели8.6K

Rust хорош своей безопасностью, но рано или поздно приходится выйти за пределы уютного мирка borrow checker. Нужно подключить проверенную C-библиотеку, использовать системный API или просто переиспользовать существующий код. И тут начинается unsafe.

Правильно приготовленный unsafe позволяет создать безопасный API поверх небезопасного кода, сохранив все гарантии Rust для пользователей библиотеки.

Разберём, как писать FFI-обёртки, которые не подтекают и не падают.

Читать далее

С 5 минут до 15 секунд: параллельные тесты с базой данных для Telegram-ботов

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.1K

Тесты выполняются 5 минут. Вы вносите маленькое изменение, запускаете cargo test и ждёте. Проверяете телефон. Всё ещё ждёте. К моменту, когда тесты заканчиваются, вы уже забыли, над чем работали.

Читать далее

Почему ваши тесты для Telegram-ботов работают неправильно (и как это исправить)

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.4K

15-20 минут на ручное тестирование. После каждого коммита. 47 состояний диалога. Бесконечные «а этот edge case я проверил?». Flaky тесты с реальным API. Rate limits от Telegram. Проблема не в коде - проблема в том, как вы его тестируете. Ручное тыканье в Telegram не масштабируется. Тесты с реальным API - медленные и flaky. Свои моки писать - неделя работы. Я нашёл способ лучше: 50 интеграционных тестов за 2 секунды. Без сети. Без токенов.

50 интеграционных тестов за 2 секунды

BlueVein: как я потратил месяц, чтобы не тратить 56 часов в год на переподключение Bluetooth устройств в dual-boot

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

Переключаешься между Linux и Windows в dual-boot? Тогда ты точно знаком с этой проблемой: каждый раз нужно переподключать все Bluetooth-устройства. Наушники, мышь, клавиатуру, геймпад — всё заново.

Даже подумать страшно:
3 устройства × 90 секунд × 3 переключения в день × 250 дней = 56 часов в год впустую.

Я потратил месяц на решение этой проблемы и написал BlueVein — утилиту для автоматической синхронизации Bluetooth-ключей между ОС.

Читать далее

Ближайшие события

Rust 1.93.0: обновление встроенного musl, глобальный аллокатор и tls, cfg в asm

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели6.8K

Команда Rust рада сообщить о новой версии языка — 1.93.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.

Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.93.0 вам достаточно выполнить команду:

$ rustup update stable

Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.

Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Что стабилизировано в 1.93.0

Почему финтеху нужен капитальный ремонт: Манифест инженерной честности

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

Когда я открываю приложение своего необанка в 2026 году, я вижу будущее. FaceID срабатывает за миллисекунды. Анимации плавные, как шелк (120fps). Чат-бот на базе LLM мгновенно анализирует мои расходы и дает советы по инвестициям.

Кажется, что мы живем в киберпанке.

Но когда я нажимаю кнопку «Отправить перевод» за границу, киберпанк заканчивается. Мои деньги исчезают со счета и уходят в трехдневное путешествие через черную дыру под названием «корреспондентские счета».

Добро пожаловать в главную тайну финтеха: У нас лучшие IT-инженеры, лучшие интерфейсы и лучший AI. Но наши деньги ходят по трубам, которые проложили в середине 20-го века. И эти трубы сгнили.

Читать далее

От стартапа к протоколу: Почему мы решили написать свой «PostgreSQL для финансов»

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.8K

В мире разработки есть негласное правило: не пишите свою криптографию. В финтехе должно быть похожее правило: не пишите свой леджер (ledger) на SQL, если планируете масштабироваться.

Меня зовут [Имя], и я хочу рассказать, как мы прошли классический путь «изобретения велосипеда», набили шишки на race condition-ах и в итоге поняли, что индустрии нужен не очередной необанк, а открытый стандарт финансового учета. Так появился проект Qazna.

В этой статье я не буду продавать вам продукт. Я покажу код, архитектурные решения и то, как мы пытаемся сделать «Linux для финансов».

Читать далее

«Лучшие» практики Rust, которые вас подведут

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели14K

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

Знаете, что общего между документацией Rust и советами бабушки? И то, и другое звучит разумно, пока не начнёшь применять буквально ко всему. «Используй дженерики для переиспользования кода», «оборачивай общие данные в Arc<Mutex>», «создавай типизированные ошибки» — всё это написано в книгах, статьях и туториалах. И всё это может превратить ваш проект в нечто, от чего хочется плакать.

Читать далее

Всего одна строка кода, из-за которой 24-ядерный сервер стал работать медленнее ноутбука

Время на прочтение13 мин
Охват и читатели44K

Допустим, вы написали код для решения задачи, которая хорошо распараллеливается. Каждый поток занимается своим участком работы и не зависит от других, поэтому потоки почти не должны координироваться друг с другом, за исключением самого последнего этапа, когда требуется объединить результаты. Естественно, в данном случае логично предположить, что чем больше ядер задействуется для такого кода, тем быстрее он выполнится. Вы ставите бенчмарки и сначала прогоняете этот код на ноутбуке. Действительно, оказывается, что он практически идеально масштабируется на всех четырёх доступных ядрах. Затем вы прогоняете его на большой и пафосной многопроцессорной машине, рассчитывая, что производительность будет ещё выше — но убеждаетесь, что на практике этот код работает даже медленнее, чем на ноутбуке, сколько бы ядер под него не выделить. Да, именно с таким случаем мне однажды довелось столкнуться.

Читать далее

Хватит воевать с Makefile: как я написал свой таск-раннер на Rust, чтобы не сойти с ума

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели12K

Хватит воевать с Makefile: как я написал свой таск-раннер на Rust

Устали от табов, .PHONY и bash-лапши? Я тоже. Поэтому написал Nest — декларативный таск-раннер с иерархией, типами и понятным синтаксисом. Рассказываю, как это было и почему вам стоит попробовать.

Читать далее

Rust в действии: допечатка

Время на прочтение14 мин
Охват и читатели10K

Всем привет!

Мы гордимся тем, с каким успехом и рвением выпускаем на русском языке крутую литературу по языку Rust. Мы занялись этим, когда Rust ещё далеко не был мейнкуном мейнстримом - и нашим первым (и сразу же очень успешным) заходом в тему была ныне легендарная книга Тима Макнамары "Rust in Action". Она вышла в издательстве "Manning" в 2021 году, а на русском языке мы выпустили первый тираж "Rust в действии" в ноябре 2022 года. Очередная допечатка закончилась к новому 2026 году, и мы решили разместить здесь переводную статью о книге для привлечения внимания к свежей допечатке (тираж ограничен!)

С тех пор эта книга стала базовым введением в Rust и пропуском в отрасль, но мы на ней, конечно, не остановились. Далее мы выпустили:

Читать далее
1
23 ...