美文网首页goGo开源项目以及技术分享
分享我的第一个 GO 开源项目(xujiajun/goroute

分享我的第一个 GO 开源项目(xujiajun/goroute

作者: xujiajun | 来源:发表于2018-10-30 13:48 被阅读268次

分享我的第一个 GO 开源项目( xujiajun/gorouter ),一个简单高性能的 router,和著名的 julienschmidt/httprouter 差不多快,且支持正则。很方便写 RESTful APIs 或者组建你自己的 web 框架。

项目由来

一开始学习 golang 的时候,我是从学习 go 写 web 应用,自然而然需要一个 web 框架或者 web 路由器。

找到这个 julienschmidt/httprouter (有几千 star 吧,截止今天 10 月 30 号,有 7900+star ),

使用了下,发现一般功能有了,但是看了他的 import 库,不支持正则,想改他的代码,发现各种 if,嵌套 walk 有种 bad smell 的感觉,还是放弃。我又试用了另一款著名的路由器 gorilla/mux (也有几千 star 吧,截止今天 10 月 30 号,有 7000+star ),测了下功能比 julienschmidt/httprouter 强大,但是性能差太多。具体见我的 benchmarks。

于是我决定自己写一个,一来学习下 go,二来也能解决下这个问题。我给自己的目标:

0、简单

1、测试覆盖率 90%以上,

2、支持基本的路由功能,

3、支持正则

4、性能要高

5、文档要完善

6、原生 go 实现,不要第三方库

项目地址

https://github.com/xujiajun/gorouter

项目原理

用了数据结构压缩 Trie

Features:

Fast - see benchmarks

URL parameters

Regex parameters

Routes groups

Custom NotFoundHandler

Custom PanicHandler

Middleware Chain Support

Serve Static Files

Pattern Rule Familiar

HTTP Method Get、Post、Delete、Put、Patch Support

No external dependencies (just Go stdlib)

项目情况

目前项目已经提交给awesome-go了,已经被收录了,也算给 Go 社区贡献自己小小的力量。希望大家用得上。

代码覆盖率 100%。

examples 里面含有完整例子,方便学习使用,如编写中间件、路由组、路由正则匹配等。

README 用英文写的,已经完成差不多了,中文如有必要,我再补上。我建议大家看英文

最后,最重要的是欢迎大家给我 star ! 提 issues !提交 PR !和我交流!

谢谢关注!后面还有更多 Go 开源作品分享给大家

相关文章

  • 分享我的第一个 GO 开源项目(xujiajun/goroute

    分享我的第一个 GO 开源项目( xujiajun/gorouter ),一个简单高性能的 router,和著名的...

  • 优秀网站

    一.语言栈 GO go 博客 Go中国 zupzup : web Ewan : 微服务 go开源项目 Beego:...

  • go 开源项目

    这个项目可以理解为针对互联网IT人打造的中文版awesome-go。已有的awesome-go项目, 汇总了很多g...

  • GO开源项目

    转载几个go开源项目 docker 无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用...

  • 认识Docker(1)

    1.1 什么是Docker? Docker开源项目 Docker是基于Go语言实现的云开源项目,诞生于2013年。...

  • go优秀开源项目

    目录 监控系统 容器技术 PaaS工具 大数据 微服务 CI/CD 数据库技术 存储技术 分布式系统 消息系统 服...

  • Go语言开源项目

    随着云计算的时代到来,Go 的应用真的越来越广泛,身边有很多朋友应公司要求开始学习 Go 语言,其中有很多是 Ja...

  • Go语言的开源项目

    1.Docker项目网址为https://github.com/docker/docker[https://git...

  • go.dev

    Google 上线了go.dev go.dev发布之后,golang.org官网将更加聚焦go开源项目本身的开发、...

  • go语言值得学习的开源项目推荐

    谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki...

网友评论

    本文标题:分享我的第一个 GO 开源项目(xujiajun/goroute

    本文链接:https://www.haomeiwen.com/subject/gvlgtqtx.html