Hono — это облегченная веб-инфраструктура, которая выполняет пограничные среды, такие как Cloudflare Workers и Bun, Deno и Node.js. Он поставляется со встроенной поддержкой TypeScript, не зависит от внешних зависимостей и использует технику «умной маршрутизации», которая обещает «сверхбыструю» производительность на всех платформах.
Что такое Хоно
Hono рекламируется как сверхбыстрая веб-инфраструктура, которую можно развернуть на периферии и во всех основных средах JavaScript. Разработчики Hono на своей официальной странице сообщают, что:
Hono —[炎] означает пламя🔥 на японском языке— это небольшая, простая и сверхбыстрая веб-платформа для Cloudflare Workers, Deno, Bun и других.
Особенности Хоно
Hono предоставляет разработчикам 5 функций, которые помогут сделать веб-разработку простой и эффективной, обеспечивая при этом высокие стандарты производительности:
- Hono работает очень быстро благодаря технологии умной маршрутизации, которая автоматически выбирает лучший алгоритм маршрутизации по запросу.
- Hono не имеет никаких зависимостей, поскольку использует Web Standard API для работы в сети и связи по протоколу HTTP.
- Hono имеет встроенное ПО промежуточного слоя для повторяющихся задач, таких как аутентификация, CORS, кеширование, сжатие, сервер GraphQL и многие другие.
- Hono имеет первоклассную поддержку TypeScript для улучшения опыта разработчиков.
- Hono может выполняться на нескольких платформах JavaScript с одним и тем же кодом.
Развитие в Хоно
API Hono кажется очень похожим на широко известный Express.js. Однако обратные вызовы маршрута получают объект Context
, который выполняет действия как с данными запроса, так и с данными ответа.
Чтобы запустить Hono на Bun.js:
bun add hono
Затем создайте index.ts
со следующим кодом:
import { Hono } from 'hono' const app = new Hono(); app.get('/', (c) => c.text('Hello from Hono!'))
и запустите:
bun ./index.ts
Для запуска Hono на Node.js требуется дополнительная зависимость @honojs/node-server
, которая служит адаптером для обслуживания приложения.
Чтобы запустить Hono на Node.js:
npm i --save hono @honojs/node-server typescript # or yarn add hono @honojs/node-server typescript
Затем создайте index.ts
со следующим кодом:
import { serve } from '@honojs/node-server' import { Hono } from 'hono' const app = new Hono(); app.get('/', (c) => c.text('Hello from Hono!')) serve(app)
и запустите его, либо скомпилировав index.ts
:
npx tsc . node ./index.js
или используя ts-node
:
## install ts-node npm i ts-node --save-dev # or yarn add -D ts-node ## run the server ts-node ./index.ts
Ориентиры Хоно
Согласно официальным тестам, выполненным создателями Hono (Общедоступный исходный код), видно, что Hono превосходит большинство широко используемых веб-фреймворков, совместимых с периферией, таких как fast
, faster
и opine
от Deno.
На воркерах Cloudflare
Исходный код: benchmarks/handle-event
На Дено
Исходный код: benchmarks/deno
На булочке
Исходный код: SaltyAom/bun-http-framework-benchmark
Заключение
Hono — многообещающий веб-фреймворк для периферии, обеспечивающий достойную производительность без ущерба для опыта разработчиков. Он имеет API, похожий на широко распространенный express.js
, с промежуточным программным обеспечением, которое охватывает большинство типичных вариантов использования, таких как аутентификация и проверка.
Вопрос о том, станет ли Hono де-факто фреймворком для пограничных веб-серверов, остается спорным. Однако, учитывая его производительность и простоту использования, вполне возможно, что Hono останется устойчивым и получит значительную долю развертываний в граничных средах, особенно для Cloudflare Workers.