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

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

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

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

В данной статье я расскажу, с какими проблемами, связанными с бинарником, столкнулось моё решение при запуске на Arch Linux у моих знакомых, и почему у меня оно работает нормально на Debian 12 и 13. Также я разберу преимущества и недостатки текущей реализации, покажу возможные пути решения и альтернативы, а лучшее решение применю на практике.
Я снова попрошу Сергея и Ивана запустить моё приложение на Arch Linux, чтобы проверить его работу.
Заваривайте чай, доставайте вкусняшки — пора «удобрять почву для выращивания помидоров»! 🍅

Что будет, если выкинуть Python-обвязку и сделать TTS по-взрослому?
Я взял Qwen3-TTS и за месяц собрал RustTTS: компактный бинарник, быстрый старт, стриминг и контролируемый инференс без “venv на 2 ГБ”.
Покажу, как устроен пайплайн (text → tokens → audio), где реально узкие места, какие оптимизации дают эффект, и почему RTF на CPU может быть конкурентным, если не стрелять себе в ногу архитектурой.

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

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

Неделю назад мы опубликовали статью «Почему финтеху нужен капитальный ремонт„, а до этого „От стартапа к протоколу: Почему мы решили написать свой „PostgreSQL для финансов“„. Мы получили много комментариев — от умеренных до резко критических. И я хочу начать с благодарности.“““»
Спасибо тем, кто нашел баги в нашем UI (мы всё поправили). Спасибо тем, кто писал «зачем это нужно, если есть PostgreSQL?». Спасибо даже тем, кто называл проект «велосипедом„.“»
Именно ваша критика заставила нас пересмотреть приоритеты и за неделю реализовать то, что мы откладывали месяцами: Atomic PvP (атомарный обмен валют) и ISO 20022 "в ядре".
Мы поняли, что не смогли донести главную мысль. Qazna - это не просто "еще один леджер". Это попытка ответить на вопрос, который IT-сообщество почему-то боится задавать.

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

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

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

Переключаешься между Linux и Windows в dual-boot? Тогда ты точно знаком с этой проблемой: каждый раз нужно переподключать все Bluetooth-устройства. Наушники, мышь, клавиатуру, геймпад — всё заново.
Даже подумать страшно:
3 устройства × 90 секунд × 3 переключения в день × 250 дней = 56 часов в год впустую.
Я потратил месяц на решение этой проблемы и написал BlueVein — утилиту для автоматической синхронизации Bluetooth-ключей между ОС.
Команда Rust рада сообщить о новой версии языка — 1.93.0. Rust — это язык программирования, позволяющий каждому создавать надёжное и эффективное программное обеспечение.
Если у вас есть предыдущая версия Rust, установленная через rustup, то для обновления до версии 1.93.0 вам достаточно выполнить команду:
$ rustup update stable
Если у вас ещё не установлен rustup, вы можете установить его с соответствующей страницы нашего веб-сайта, а также посмотреть подробные примечания к выпуску на GitHub.
Если вы хотите помочь нам протестировать будущие выпуски, вы можете использовать канал beta (rustup default beta) или nightly (rustup default nightly). Пожалуйста, сообщайте обо всех встреченных вами ошибках.

Когда я открываю приложение своего необанка в 2026 году, я вижу будущее. FaceID срабатывает за миллисекунды. Анимации плавные, как шелк (120fps). Чат-бот на базе LLM мгновенно анализирует мои расходы и дает советы по инвестициям.
Кажется, что мы живем в киберпанке.
Но когда я нажимаю кнопку «Отправить перевод» за границу, киберпанк заканчивается. Мои деньги исчезают со счета и уходят в трехдневное путешествие через черную дыру под названием «корреспондентские счета».
Добро пожаловать в главную тайну финтеха: У нас лучшие IT-инженеры, лучшие интерфейсы и лучший AI. Но наши деньги ходят по трубам, которые проложили в середине 20-го века. И эти трубы сгнили.

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

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

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

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

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

Продолжение истории про Rust-based log viewer для VS Code. Теперь с AI: описываешь что искать на человеческом языке — получаешь regex. Плюс объяснение непонятных строк в один клик.

Что это такое?
Это играть музыку.
Одним пальцем ноту!
Левая кнопка мышка играет.
НО...
Я не могу играть музыку!!! Не знаю ноты!
И я сделал что ноты уже есть. Они жестко заданы!
А вот время - НЕТ!!!!!
Если не время не указывать то ничего не происходит!
Надо указывать! Левая кнопка мышка! Нажать одну ноту. Потом отпустить! Затем вторую. Нажать. Потом отпустить. И так далее. ТЫ это делаешь - время нот!
А какую именно ноту - это не ты делаешь а программа.
Вот.
Плохо рассказываю.
Ну так инсульт.
Я сделал это 18 песен!
Вот такой файл. Я сделал еще ДО инсульта. Давно, двадцать лет! И конечно это asm! "Программы для Windows я пишу на языке Flat Assembler. Выбор именно этой среды разработки совсем необычен, но так уж сложилось." А ПОСЛЕ инсульта я сделал его на Rust! Как? Узнаете )

Представьте: вы строите сервис выдачи дипломов на Solana. Всё отлично, пока дело не доходит до тестов.
Внезапно оказывается, что для проверки бизнес-логики нужно поднимать валидатор, искать тестовые токены и молиться на стабильность сети. Знакомая боль?
В этой статье я покажу, как мы решили проблему, используя async-trait и dyn Trait. Мы превратили интеграционные тесты длиной в минуты в юнит-тесты, которые проходят за миллисекунды.