第一个生产准备就绪
以及最受欢迎的 Bun 框架
我们的原则
设计以人为本
我们的目标是设计一个符合人体工程学、合理且高效的工作框架,即使是初学者也能轻松使用。
设计以避免不必要的复杂性,并为您简化类型复杂性,以便您专注于构建。
一个感觉就像 JavaScript 的框架
import { Elysia, file } from 'elysia'
new Elysia()
.get('/', 'Hello World')
.get('/image', file('mika.webp'))
.get('/stream', function* () {
yield 'Hello'
yield 'World'
})
.ws('/realtime', {
message(ws, message) {
ws.send('got:' + message)
}
})
.listen(3000)
更加先进的 类型安全
import { Elysia } from 'elysia'
new Elysia()
.get('/id/:id', ({ params, set }) => {
set.headers.a
return 'Su'
})
.get('/optional/:name?', ({ params: { name } }) => {
return name ?? 'Pardofelis'
})
.listen(3000)
你自己的文档 在 1 行中
这不是魔法
与 OpenAPI 模式深度集成
Elysia 可以直接为您的 API 生成 Swagger 文档。
import { Elysia } from 'elysia'
import swagger from '@elysiajs/swagger'
new Elysia()
.use(swagger())
.use(character)
.use(auth)
.listen(3000)
11.88ms
POST /character/:id/chat
Playback
对于 DevOps
OpenTelemetry
Elysia 原生支持 OpenTelemetry。监控功能内置,因此您可以轻松监控您的服务,无论平台如何。
import { treaty } from '@elysiajs/eden'
import type { App } from './server'
const api = treaty<App>('api.elysiajs.com')
const { data } = await api.profile.patch({
age: 21
})
对于前端
端到端类型安全
与 tRPC 类似,Elysia 在无需代码生成的情况下,从后端到前端提供了类型安全。前后端的交互在编译时进行了类型检查。
21x
比 Express 更快
6x
比 Fastify 更快
Elysia Bun
2,454,631 reqs/sGin Go
676,019
Spring Java
506,087
Fastify Node
415,600
Express Node
113,117
Nest Node
105,064
以每秒请求次数进行测量。数据来源于官方 TechEmpower 基准测试 第 22 轮(2023-10-17)的 PlainText 结果。
充满信心地 进行测试
类型安全带有 自动完成功能
Elysia 提供了一种类型安全的层,用于从路由到参数地交互和测试您的服务器。
使用自动补全功能,您可以轻松地为服务器编写测试,而无需任何麻烦。
import { treaty } from '@elysiajs/eden'
import { app } from './index'
import { test, expect } from 'bun:test'
const server = treaty(app)
test('应处理重复用户', async () => {
const { error } = await server.user.put({ username: 'mika',
})
expect(error?.value).toEqual({
success: false,
message: '用户名已被占用'
})
})
由社区的爱所驱动
Aqueel
@AqueelMiq
X! 上的面包上的喷气燃料,@shlomiatar 谁构建了框架,对选择正确工具完成工作有独到的眼光。
Shlomi Atar
@shlomiatar
感谢 @saltyAom 和强大的 Elysia js,它正在驱动我们的服务器端 UI。
htmx.org
@htmx_org
htmx 在 @bunjavascript、@elysiaJS 和 @tursodatabase 下工作得很好,顺便说一下。
Marc Laventure
@MarcLaventure
我们自豪地赞助了数十个项目,并且帮助维护仓库,以惊人的速度为开源项目做出贡献。
Jarred Sumner
@jarredsumner
你可以使用 Express 与 Bun 一起使用,但通常我们看到人们直接使用 Elysia、Hono 或 Bun.serve()。
Runyasak Ch. 💚
@runyasak
开始使用 @elysiaJS 创建一个 Discord Bot,发现类型系统非常简单易用。开发体验非常棒,编码也变得很有趣!使用 @DrizzleORM 和 PostgreSQL。比之前使用的要简单得多。ElysiaJS 向我证明了出色的性能和开发体验可以并存。😎
Herrington Darkholme
@hd_nvim
今天被介绍给了@elysiaJS,看起来相当可靠。现代网络的开端到结束类型安全/保护/交换器都是杀手级特性!(而且它很快)
scalar.com
@scalar
非常兴奋能成为令人惊叹的 @elysiaJS 社区的一员!
José Donato 🦋
@josedonato__
轻松处理包含约 350k 行的表格。正在努力实现当连接到 @openbb_finance Terminal Pro 时,允许使用 @ag_grid 的服务器端行模型。后端使用 @elysiaJS + @bunjsproject。
pilcrowonpaper
@pilcrow
恰逢 Bun 1.0 版本发布之际,Lucia 2.5 现在能够开箱即支持 @elysiajs!你也可以直接使用 Bun.serve()。此版本还带来了两个新的 OAuth 提供商,Strava 和 AWS Cognito!
MikroORM
@MikroORM
我一直在尝试使用 @bunjavascript 和 @elysiaJS,在发布之前还需要做一些调整,但是下一个版本在与 bun 的 TS 支持检测方面应该会更加原生,例如 CLI 在不安装 ts-node 的情况下也能工作。
由你实现
Elysia不是由某个组织拥有,而是由社区推动的。
Elysia 的发展离不开您的支持
感谢你使 Elysia 成为可能
总结一下
提供 最好的
给予勇敢的人
对于建设者、发明家和有远见的人来说
我们花费了数年时间研究 JavaScript 框架的优点和缺点,所有这一切都是为了提供一次非凡的体验。
光速
比 Express 快 21 倍。
由 Bun 超级加速,
Elysia 是表现最佳的 JavaScript 框架之一。
安全
动态的类型安全
从类型到运行时构建
Elysia 学习你的代码库,适应,用你的类型强制执行
生产
今天最好的体验
人体工程学设计,以开发者体验为优先。没有任何技术废话。