Что это такое?
Elysia — это фреймворк на TypeScript для создания HTTP-серверов и API. Он делает ставку на сквозную типобезопасность и удобную разработку, а работает поверх рантайма Bun.
Это полноценный веб-фреймворк или тонкая библиотека роутинга, которую нужно собирать самому?
Полноценный фреймворк: роутинг, работа с cookie и декодирование URI уже встроены. Из зависимостей — всего четыре небольшие библиотеки: роутер (memoirist), парсер cookie, декодер URI и вспомогательная библиотека для работы с типами.
Как добавить его в проект и запустить сервер?
Установите пакет командой 'bun add elysia' (подойдёт и npm), импортируйте его и запустите сервер на Bun; в самом репозитории для разработки используют команду 'bun run --watch example/a.ts'.
Я привязан к Bun, или можно запустить и на Node.js?
Bun — основной рантайм, но набор тестов в репозитории явно проверяет работу фреймворка и под Node.js — как с CommonJS, так и с ESM, так что проекты на Node тоже поддерживаются.
Где его можно развернуть — работает ли он вне обычного сервера, например на Cloudflare Workers?
Да — помимо Bun и Node, в репозитории есть тестовая конфигурация для Cloudflare Workers со сгенерированными типами воркера, так что деплой на edge-инфраструктуру Cloudflare явно покрыт тестами.
Что сквозная типобезопасность даёт мне на практике в повседневном коде?
Определения маршрутов и обработчики связаны в одну цепочку типов, поэтому любое несоответствие между тем, что маршрут принимает и что возвращает, обнаруживается ещё на этапе компиляции. В репозитории для этого даже есть отдельный набор тестов на основе tsc.
Проект уже достаточно зрелый для боевого сервиса или всё ещё экспериментальный?
Скорее устоявшийся, чем экспериментальный: начался в декабре 2022 года, около 19.2k звёзд на GitHub, лицензия MIT, есть CI на GitHub Actions с тестами сразу под несколько платформ.
Which topics is it in?
developer-experience, type-safe, cloudflare-workers, bun, web-framework, http, rest-api, backend, web-development, performance, framework, npm