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 服务器

Apache-2.0

1MB
6K SLoC

JavaScript 4K SLoC // 0.1% comments Rust 897 SLoC // 0.0% comments Rusty Object Notation 597 SLoC // 0.0% comments TypeScript 490 SLoC // 0.2% comments

boltzmann

Build Boltzmann CLI Test Boltzmann CLI & framework

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