Є така штука, як Cloudflare Workers. Це спосіб задеплоїти джаваскрипт на серверах в клаудфлерівські точках присутності. Ну типу AWS Lambda, тільки для тих, хто хоче зробити небагато і швидко. Точно кружляють навколо традиційних авсів і хочуть взяти їх в оточення. :) Але я не про те.
Вони там роблять всілякі хитрощі, типу запуску коду у сендбоксах всередині процесів, що вже працюють, і там напевно всяке інше. Але у результаті є штука, яку легко задеплоїти, яку чаржать за запуск (тому що час виконання обмежений 10 мс) і яка дуже швидко стартує. На відміну від інших "serverless" платформ типу амазонівських лямбд, де запускається цілий окремий процес.
А я хочу таке саме, але для кложі. :) Так, звісно є GraalVM і можна скомпілювати все в бінарь, який буде дуже швидко запускатися і всякі амазон лямбди та й інші гугл клауд фанкшнс тоді будуть з цим нормально працювати, але:
- Компіляція дуже довга, paste.in.ua, який ну дуже простий сервіс — вміє хттп, жсон та маркдаун, а замість БД там файли, бо драйвер к sqlite я не зміг зібрати — компілюється він кілька хвилин, на стандартному варіанті Github Actions — 8 хвилин!
- Компіляція, на жаль, змінює те, що відбувається. Грааль не може зкомпілювати все і приходиться трохи підганяти під нього поведінку. Є загалом прийнятні штуки: відсутність рефлексії, відсутність дій на верхньому рівні неймспейсів (бо вони при компіляції виконуються), але є й речі, які я не можу сформулювати. Просто реально перший раз зібрати все — це купа спроб з пошуками помилок у гуглі й експериментів. Той же самий драйвер бд я так і не зміг зібрати.
- Спало на думку, що до скомпільованого бінарника не приєднатися реплом, але у такому середовищі, як serverless cloud function worker (чи можна ще слово сюди додати? Чи я вже всі хайпові терміни заюзав? :)) — воно не дуже має сенс.
Гаразд! Врешті-решт, жвм стільки років робили та й що, нічого не видумали? Наче SubstrateVM, яка у граалі йде, краще вміє швидко стартувати, але чи треба це? Так важко нагуглити, чесно, відчуття, що я не знаю потрібних слів.
Типу потрібно щось таке, що вміє запускати код у сендбоксі, і при цьому тримати залежності у пам‘яті, щоб запуск того коду був швидким. Так?