GledeServer一款基于Bun的高性能服务器

Logo

这是一款高性能的JS/TS Runtime, 在bun@1.2.*linux/MacOS已可以逐步在生产环境应用,我用得早, 踩过一些内存泄漏的坑,值得高兴的是目前官方fix的差不多了,已稳定运行6个月未发生重启情况。⚠️保险起见建议还是采用的pm2统一管理。win开发环境使用它建议上安装wsl,你会得到接近linux/MacOS的开发体验。作为AI后端不失为一种明智的选择。

为什么有nodejs了还要用它?

我不知道如何解释,这靠你自己评估。

Oh! 兄弟如果你写ts的话请你在linux/MacOS上试一试它是多么爽。如果你是一个特别谨慎的人且你不放心上生产,先在本地用它写脚本,部署时仍然用nodejs执行。或先在ci/cd接入它跑单元测试。等你逐渐对它了解并产生信任后再上生产不迟。

  1. 飞书文档介绍Bun
  2. glede-server 供兄弟们参考
  3. bun server的基座
  4. 本文是注册路由的极简写法, 装饰器的其它参数以及组合使用联系 1061393710@qq.com

Benchmark

环境: MacOS; Intel-i5 2.9GHz; Memory-DDR4(2666Mhz) 32 GB

HTTP/WebSocket

在这里插入图片描述

SSE

在这里插入图片描述

如何用

初始化工程目录

# 首先你需要确保已经正确安装了bun
npm install -g bun
bun -v # 1.2.10
# 然后你可以使用 glede-init 工具便捷创建目录
bun x glede-init
# 进入你创建的目录,写路由即可
cd <your-project> && bun dev

注册Get

@GSD.Get('/')
handler(req: GledeBunRequest, data: GledeReqData) {
    return {
        code: 0,
        data: {...}
    };
}

注册Post

@GSD.Post('/')
handler(req: GledeBunRequest, data: GledeReqData) {
    return {
        code: 0,
        data: {...}
    };
}

注册WS

@GSD.WS('/')
handler(ws, message: string | Buffer) {
   ws.send(data, true);     // 发送字符串/二进制,第二个参数是否开启压缩
   ws.sendBinary(data);     // 明确声明发送二进制
   ws.sendText(data, true); // 发送字符串数据
}

注册SSE

  • 基于HTTP(GET/POST)
@SSE()
@GSD.Get('/') @GSD.Post('/')
handler(req: GledeBunRequest, data: GledeReqData) {
    const { controller } = data;
    controller.write('data: hello\n\n'); // 发送数据
    // doSomething.
    controller.close(); // 断开链接
}

路由树

  • 启动服务器后,成功注册的路由默认在 logs/routers.txt,例如:
├── api/
│   ├── address/
│   │   ├── add (POST)
│   │   ├── default (GET)
│   │   ├── del (GET)
│   │   ├── latest (GET)
│   │   ├── list (GET)
│   │   ├── name (GET)
│   │   ├── query (GET)
│   │   └── upd (POST)
│   ├── chat/
│   │   └── getSession (GET)
│   └── user/
│       ├── check (GET)
│       ├── login (POST)
│       ├── unregister (POST)
│       └── upd (POST)
├── chat/
│   ├── sse (GET, POST, SSE)
│   └── ws (GET, WS)
└── service/
    └── kbm (OPTIONS, POST)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值