看了go web领域的httprouter实现借用了radix tree这个树,据介绍路由效率很高,而且还很省内存。近来在看nodejs的原始API,然后注意到nodejs推荐给我一个router,名字就叫router。但是感觉这个router效率并不高,而且如果没有用c扩展,那么内存也会消耗很多。基于此想法,我觉得在我能力之内(就算是之外也去尝试一下),利用c写扩展,js做最后一层的模式匹配,来实现高性能的router。其中最关键的点就是用c去实现这个扩展,还有js层的数据加工。想到哪写到哪,突发奇想嘛!记录一下具体想法:
比如说下面的一个url:
/api/aricles/<id: int>/author //原始数据
/api/articles/?/author //经过处理后的输入数据,?用来占位
对输入数据处理,如果满足这个模式,那么返回ok,让js层做最后的模式匹配取出占位符处的数据,再利用runtime确定类型。
网友评论