欢迎使用 Fiber — 一个用 Go 编写的 Express.js 风格的 Web 框架,️❤️

2025-05-25

欢迎使用 Fiber — 一个用 Go 编写的 Express.js 风格的 Web 框架,️❤️

介绍

你好,世界!👋 今天我们将讨论一个年轻(但雄心勃勃)的Go 语言Fiber Web 框架,并了解它并非“又一个像 X 那样的新框架”,而是一个创建快速 Web 应用程序的绝佳工具。

📌 这将是一篇评论文章,我们将进一步深入研究 Fiber。

目录

  1. 什么是纤维?为什么它如此有益?
  2. 开始使用 Fiber 的有用信息
  3. 主要特点
  4. 基准测试
  5. 项目援助

什么是纤维?为什么它如此有益?

按照 GitHub 存储库中的官方README进行操作:

Fiber 是一个 Express.js 风格的 HTTP Web 框架实现,运行在Fasthttp之上,Fasthttp 是 Go(Golang)平台上最快的 HTTP 引擎。该包使用与 Express 类似的框架约定。

我倾向于同意这一点。如果你曾经像我一样使用Express.js在 Node.js 上实现过 Web 应用,那么很多方法和原理对你来说会显得非常普通!

例如,这是Hello, World!Express.js 的标准:



// ...

const app = express()

app.get('/', (req, res) => res.send('Hello, World!'))

app.listen(8080)


Enter fullscreen mode Exit fullscreen mode

Fiber也有类似的例子



// ...

app := fiber.New()

app.Get("/", func(c *fiber.Ctx) {
  c.Send("Hello, World!")
})

app.Listen(8080)


Enter fullscreen mode Exit fullscreen mode

开始使用 Fiber 的有用信息

实际上,您所需要的只是官方文档!😉

Fiber作为一个 Web 框架,以极简主义的理念创建,以便让具有 JavaScript 经验的新手能够更轻松地开始创建 Web 应用程序的后端。

作者自己就是这么说的:

从 Node.js 转换到 Go 的人们经常会遇到糟糕的学习曲线,无法开始构建他们的 web 应用程序,这个项目旨在简化快速开发,但不考虑内存分配和性能。

主要特点

主要特点

  • 针对速度和低内存使用率进行了优化
  • 快速服务器端编程
  • 使用参数轻松路由
  • 具有自定义前缀的静态文件
  • Next()具有支持的中间件
  • Express API 端点
  • 扩展文档

轻松启用 prefork 功能

只需在您的代码上设置Prefork为:true



// ...

app := fiber.New()

app.Prefork = true // enable prefork

app.Get("/", func(c *fiber.Ctx) {
c.Send(fmt.Sprintf("Hi, I'm worker #%v", os.Getpid()))
// => Hi, I'm worker #16858
// => Hi, I'm worker #16877
// => Hi, I'm worker #16895
})

app.Listen(8080)

Enter fullscreen mode Exit fullscreen mode




什么是 prefork?

启用 prefork 功能将生成多个Go进程监听同一端口。Nginx有一篇关于Socket Sharding 的很棒的文章,此图取自同一篇文章 👇

预分叉

✨ 我最喜欢的杀手级功能 ✨

对我来说,另一个重要功能是可以完全访问所有 Fasthttp 方法和属性(阅读文档以获取更多信息)。

是的,你没听错! Fiber 和Express.js一样非常容易使用,并且具备Fasthttp现有和未来将拥有的所有功能🔥

基准测试🤖

点击此处查看所有基准测试结果。我只会展示部分结果。

  • TechEmpower:JSON 序列化

JSON 序列化

  • Go-Web:启用 HTTP 流水线

启用 http 流水线

项目援助

  1. 为项目添加GitHub Star 。
  2. 在您的 Twitter 上发布有关该项目的推文
  3. 帮助将 README 和API 文档翻译成另一种语言。

摄影:

[标题] Fiber 作者https://gofiber.io/
[1] Nate Grant https://unsplash.com/photos/dFF8z3WH5FI

聚苯乙烯

如果你想在本博客上看到更多类似的文章,请在下方留言并订阅我。谢谢!😻

❗️ 您可以在Boosty上支持我,可以是永久支持,也可以是一次性支持。所有收益都将用于支持我的开源项目,并激励我为社区创作新的产品和文章。

在 Boosty 上支持我

当然,你也可以帮助我改善开发者的生活!只需以贡献者的身份连接到我的一个项目即可。非常简单!

我的主要项目需要您的帮助(和星星)👇

  • 🔥 gowebly:下一代 CLI 工具,可轻松使用 Go 在后端创建出色的 Web 应用程序,使用 htmx、hyperscript 或 Alpine.js 以及前端最流行的 CSS 框架。
  • create-go-app:通过运行一个 CLI 命令,创建一个具有 Go 后端、前端和部署自动化的新的生产就绪项目。

我的其他小项目:yatrgosljson2csvcsv2api

文章来源:https://dev.to/koddr/welcome-to- Fiber-an-express-js-styled-fastest-web-framework-writing-with-on-golang-497
PREV
通过玩“Pod 游戏”来学习 Kubernetes
NEXT
📖 在 Go 上构建 RESTful API:隔离的 Docker 容器中的 Fiber、PostgreSQL、JWT 和 Swagger 文档 📖 教程:在 Go 上构建 RESTful API