Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

一个新的 类似express / connect,但更高性能的轻量级 web 框架

$
0
0

楼主工作主要开发语言是 node.js

============ update ============== 发这个主题,不是为了争论 谁的框架更好,仅仅是为了学习探讨。 lu 本身代码也就200多行,是很适合很多人去了解学习一个 web 框架原理的。

今天要介绍的 web 框架,是基于 Go 语言写的。https://github.com/vincentLiuxiang/lu该项目已被 Go 著名项目 fasthttp在官方推荐

大家先别着急喷!!! 大家先别着急喷!!! 大家先别着急喷!!!

所谓,技多不压身,多学一点东西总是好的。

故事前传

大约在半年前,我在给 connect( connect 可以认为是更轻量级的 express ) 框架的作者提了一个可以提高性能的 pull request。

这个里是讨论链接:https://github.com/senchalabs/connect/pull/1085

该想法得到了作者的认可,但是对 connect 内部存储中间件的 stack 属性有一定的变化,作者担心会影响到正在使用 connect 的人。 为了向前兼容(其实是兼容的,只是如果用户使用了一些 connect 实例的内部属性,可能会有问题), 作者希望我的 pull request 可以写的更向前兼容一点。

于是我写了一个向前兼容,但是代码失去其优雅性的版本。

苦思冥想后,我放弃了 pull request 。 准备用 node.js 再造一个 与 connect api 完全一致的轮子,只是性能更高。

但是想想,觉得完全没有必要那段时间正好在帮一个朋友解决一个 Go 项目的问题, 发现 Go 里面的开发框架要么非常重,要么完全没有 url 路由匹配,配合 next 触发的中间件的机制, 缺少像 node.js 这种可插拔的,又有 url 路由匹配配合 next 触发中间件机制的轻量级框架。

于是决定,把提给 connect 的想法用 Go 实现了一遍。

go 语言版 connect / express 框架 —— lu

其api 风格、 原理与 connect / express 非常像。

这个框架写出来也有半年多时间了,感觉埋在那里有点可惜。 最近有点空,决定出来宣传一下,核心代码不到300行,测试丰富,代码质量A+, 该项目已被 Go 著名项目 fasthttp在官方首页推荐

希望多学点东西的朋友可以去看看,一起探讨,核心代码真的很少。 lu 目前配套的中间件(类似,express / koa 的中间件生态),还不多,感兴趣的朋友也可以和我一起开发。


Viewing all articles
Browse latest Browse all 14821

Trending Articles