Обновить
4K+
3

Пользователь

2
Рейтинг
1
Подписчики
Отправить сообщение

Добрый вечер. Спасибо за отзыв.

Немного отступлю, изоляции процессов сейчас действительно нет. Изначально, как я говорил выше, проект задумывался под webview специфику: на macOS WKWebView обязан жить на главном потоке внутри NSApplication, а состыковкой такого цикла с js циклом занимается модуль bffi_event_loop с блокирующим run() и пошаговым pump(). Отсюда и однопроцессная архитектура: если нативный код падает, падает весь Bun.

Ваш комментарий подсказал, чего в bffi не хватает, чтобы закрыть вашу проблему. В планах добавить изоляцию процессов (натив работает в отдельном перезапускаемом процессе, его падение не трогает Bun, а VRAM гарантированно возвращается при рестарте :) ) и доработать менеджмент жизненного цикла хэндлов.

В целом, уже сейчас длинные вызовы можно не гонять через блокировку, async задачи уходят в нативный пул воркеров и возвращаются промисами, а генерация LLM стримится как async итератор.

Также, если несложно, подскажите, что у вас за стек? llama.cpp, ONNX или что то своё на CUDA? У большинства таких библиотек есть C API, поэтому в целом можно сделать обёртка на Rust. Оставьте сообщение в issues или discussions в репозитории gh: помогу набросать пример обёртки под вашу задачу, а если он окажется полезен и другим, добавим его в bffi-examples.

Надеюсь я правильно вас понял)

Информация

В рейтинге
1 660-й
Зарегистрирован
Активность