Автор разработал настольный текстовый редактор под названием smoodit, стремясь повысить эффективность редактирования с помощью предиктивного текста. Изначально разработанный с использованием Electron и встроенной LLM через Ollama, проект столкнулся с раздуванием ресурсов из-за Electron и LLM. Чтобы решить эту проблему, была предпринята миграция на Tauri v2, использующая React-интерфейс с Vite и Python FastAPI backend в качестве sidecar. Движок ИИ также работал как отдельный двоичный sidecar Ollama.
Ключом к миграции было освоение функции Tauri "Sidecar", которая включала упаковку Python backend с PyInstaller и настройку внешних двоичных файлов в `tauri.conf.json`. Tauri v2 требует определенных суффиксов целевых триплетов для имен файлов sidecar. Интерфейс взаимодействовал с локальным FastAPI backend, используя `@tauri-apps/plugin-http`, чтобы обойти строгие политики безопасности WebView и проблемы CORS. Был реализован механизм "Health Check Polling", чтобы убедиться, что backend готов к взаимодействию с пользователем.
Устранение неполадок включало устранение атрибута MacOS "Quarantine" на связанных двоичных файлах путем его удаления с помощью `xattr -d`. Зависания буфера PIPE были устранены путем перенаправления вывода Ollama в файл журнала вместо использования `subprocess.PIPE`. Процессы-зомби управлялись путем отсоединения дочерних процессов с помощью `start_new_session=True` и реализации проверок портов на основе сокетов. В конечном итоге, миграция на Tauri значительно уменьшила размер установочного пакета и использование памяти, что привело к более производительному инструменту разработчика.
dev.to
Story of 'smoodit' (1) : Electron to Tauri
Create attached notes ...
