比 Express 快 21 倍
通过 Bun 运行时、静态代码分析和动态代码注入增强。
成为性能最佳的 TypeScript 框架之一。可与 Go 和 Rust 相媲美。
Elysia Bun
2,454,631 req/sSwoole PHP
1,035,418Gin Go
676,019Spring Java
506,087FastAPI PyPy
448,130Fastify Node
415,600Express Node
113,117Nest Node
105,064
以每秒请求次数进行测量。数据来源于官方 TechEmpower 基准测试 第 22 轮(2023-10-17)的 PlainText 结果。
为人类而生
专注于提高生产力 ++
如果你发现自己在为框架编写代码,那就说明框架出了问题。
因此,Elysia 投入了大量时间对设计决策进行实验,以尽可能为每个人设计出最符合人体工程学的方式。
从内置的严格类型验证到统一的类型系统和文档生成,成为使用 TypeScript 构建服务器的理想框架。
import { Elysia } from 'elysia'
new Elysia()
.get('/', 'Hello World')
.get('/json', {
hello: 'world'
})
.get('/id/:id', ({ params: { id } }) => id)
.listen(3000)
仅需要值
不需要额外的方法,仅需返回值即可将数据发回客户端。
无论是普通字符串还是复杂的 JSON 数据,只需返回这个值,Elysia 将会处理其余部分。
import { Elysia, t } from 'elysia'
new Elysia()
.post(
'/profile',
// ↓ hover me ↓
({ body }) => body,
{
body: t.Object({
username: t.String()
})
}
)
.listen(3000)
类型安全
在 TypeBox 的支持下,Elysia 默认强制执行类型严格验证以确保类型完整性。
Elysia 自动将类型推断为 TypeScript,以创建像静态类型语言一样的统一类型系统。
import { Elysia, t } from 'elysia'
import { swagger } from '@elysiajs/swagger'
import { users, feed } from './controllers'
new Elysia()
.use(swagger())
.use(users)
.use(feed)
.listen(3000)
OpenAPI / Swagger
Elysia 自动生成 OpenAPI 3.0 规范,以与跨多种语言的各种工具集成。
由于符合 OpenAPI 标准,Elysia 可以使用 Swagger 插件在一行中生成 Swagger。
端到端类型安全
在所有应用程序中同步类型
像 tRPC 一样快速移动且不破坏任何内容
悬停在代码下面以查看类型定义
// server.ts
import { Elysia, t } from 'elysia'
const app = new Elysia()
.patch(
'/user/profile',
({ body, error }) => {
if(body.age < 18)
return error(400, "Oh no")
if(body.name === 'Nagisa')
return error(418)
return body
},
{
body: t.Object({
name: t.String(),
age: t.Number()
})
}
)
.listen(80)
export type App = typeof app
// client.ts
import { treaty } from '@elysiajs/eden'
import type { App } from './server'
const api = treaty<App>('localhost')
const { data, error } = await api.user.profile.patch({
name: 'saltyaom',
age: '21'})
if(error)
switch(error.status) {
case 400:
throw error.value
case 418:
throw error.value
}
data
它适用于此
作为 Bun Web 框架最受欢迎的选择之一,很可能有一个满足你需求的插件。
如果你需要的插件不存在,可以轻松创建一个插件并与社区共享。
找不到你要找的东西?
加入社区
Elysia 是 Bun 第一个 Web 框架最大的社区之一。
你可以向我们的社区和维护人员提问、提出新功能建议或报告 bug。
马上开始
搭建你的项目,并立即运行服务器
bun create elysia app