4 个版本
0.4.3 | 2021 年 2 月 17 日 |
---|---|
0.4.2 | 2021 年 2 月 12 日 |
0.4.0 | 2021 年 1 月 15 日 |
0.3.0 | 2021 年 1 月 15 日 |
#635 in HTTP 服务器
1MB
6K SLoC
boltzmann
Boltzmann 是一个用于编写 Web 服务器的 JavaScript 框架。它在一个单独的文件中实现,与您的代码一起存在。Boltzmann 专注于提供出色的开发体验,并以此为目标进行权衡。
我们的设计目标
- 确保所有路由处理程序和中间件的返回值都是有效的响应,映射到 HTTP 语义。
- 优先使用零成本抽象:只为你使用的功能付费,不多也不少,包括在安装和启动时间。
- 使用全局类型,没有特殊的响应类型。
- 只修改我们提供的对象;不要依赖于对 node 的请求和响应对象的修改。
- 提供可插拔的 body 解析和中间件行为,并提供良好的默认设置。
- 只使用最少、经过良好审查的依赖项。
- 通过 Honeycomb 追踪引入可观察性(可选)。
- 尽量使用文档化的约定来避免配置。
- 如果需要继续前进,则可以丢弃 Boltzmann。
Boltzmann 使用纯 JavaScript 实现,默认情况下用于搭建 JavaScript 项目,并提供 TypeScript 定义以方便开发。如果您选择,它也可以搭建 TypeScript 项目,但不会强制您选择转译。我们希望您能够将来在 deno 或 Web Worker 下运行 Boltzmann 应用程序,因此我们做出的 API 选择有助于实现这一目标。
有关 Boltzmann 的完整文档,请访问 文档网站。
入门
如果您喜欢查看示例代码,我们在本仓库的 ./examples
目录中提供了示例。
要使用 Boltzmann 搭建新的服务,请运行 boltzmann
命令行工具。您可以从 发布页面 获取它,或者通过 npx boltzmann-cli
运行它。(我们为 Mac OS、Windows 和 GNU Linux 预先构建。)该工具负责初始化新的 Boltzmann 项目以及保持其最新状态。您可以使用该工具启用或禁用特定的 Boltzmann 功能。
例如,要使用默认设置搭建
projects|⇒ npx boltzmann-cli hello
为您提供了一个完整的项目,包括有用的包运行脚本和代码风格检查。要运行:./boltzmann.js
。要查看响应:curl http://localhost:5000/hello/world
。想了解更多?查看文档!
团队
Boltzmann是@ceejbot和@chrisdickinson的合资企业。
许可证
Apache-2.0。
依赖项
~11–21MB
~270K SLoC