Goweb开发框架Baa.zip

时间:2022-08-08 03:04:55
【文件属性】:
文件名称:Goweb开发框架Baa.zip
文件大小:44KB
文件格式:ZIP
更新时间:2022-08-08 03:04:55
开源项目 Baa 一个简单高效的Go web开发框架。主要有路由、中间件,依赖注入和HTTP上下文构成。Baa 不使用 ``反射``和``正则``,没有魔法的实现。快速上手安装:go get -u gopkg.in/baa.v1示例:package main import (     "gopkg.in/baa.v1" ) func main() {     app := baa.New()     app.Get("/", func(c *baa.Context) {         c.String(200, "Hello World!")     })     app.Run(":1323") }特性支持静态路由、参数路由、组路由(前缀路由/命名空间)和路由命名路由支持链式操作路由支持文件/目录服务支持中间件和链式操作支持依赖注入*支持JSON/JSONP/XML/HTML格式输出统一的HTTP错误处理统一的日志处理支持任意更换模板引擎(实现baa.Renderer接口即可)中间件[gzip](https://github.com/baa-middleware/gzip)[logger](https://github.com/baa-middleware/logger)[recovery](https://github.com/baa-middleware/recovery)[session](https://github.com/baa-middleware/session)组件(DI)[cache](https://github.com/go-baa/cache)[render](https://github.com/go-baa/render)性能测试和快速的Echo框架对比 [Echo](https://github.com/labstack/echo)> 注意:[Echo](https://github.com/labstack/echo) 在V2版本中使用了fasthttp,我们这里使用 [Echo V1](https://github.com/labstack/echo/releases/tag/v1.4) 测试。路由测试使用 [go-http-routing-benchmark] (https://github.com/safeie/go-http-routing-benchmark) 测试, 2016-02-27 更新.[GitHub API](http://developer.github.com/v3)> Baa的路由性能非常接近 Echo.BenchmarkBaa_GithubAll             30000     50984 ns/op       0 B/op       0 allocs/op BenchmarkBeego_GithubAll            3000    478556 ns/op    6496 B/op     203 allocs/op BenchmarkEcho_GithubAll           30000     47121 ns/op       0 B/op       0 allocs/op BenchmarkGin_GithubAll             30000     41004 ns/op       0 B/op       0 allocs/op BenchmarkGocraftWeb_GithubAll      3000    450709 ns/op  131656 B/op    1686 allocs/op BenchmarkGorillaMux_GithubAll       200   6591485 ns/op  154880 B/op    2469 allocs/op BenchmarkMacaron_GithubAll          2000    679559 ns/op  201140 B/op    1803 allocs/op BenchmarkMartini_GithubAll           300   5680389 ns/op  228216 B/op    2483 allocs/op BenchmarkRevel_GithubAll            1000   1413894 ns/op  337424 B/op    5512 allocs/opHTTP测试Baa:package main import ( "github.com/baa-middleware/logger" "github.com/baa-middleware/recovery" "gopkg.in/baa.v1" ) func hello(c *baa.Context) { c.String(200, "Hello, World!\n") } func main() { b := baa.New() b.Use(logger.Logger()) b.Use(recovery.Recovery()) b.Get("/", hello) b.Run(":8001") }Echo:package main import ( "github.com/labstack/echo" mw "github.com/labstack/echo/middleware" ) // Handler func hello(c *echo.Context) error { return c.String(200, "Hello, World!\n") } func main() { // Echo instance e := echo.New() // Middleware e.Use(mw.Logger()) // Routes e.Get("/", hello) // Start server e.Run(":8001") }测试结果:> Baa 在http中的表现还稍稍比 Echo 好一些。Baa:$ wrk -t 10 -c 100 -d 30 http://127.0.0.1:8001/ Running 30s test @ http://127.0.0.1:8001/   10 threads and 100 connections   Thread Stats   Avg      Stdev     Max    /- Stdev     Latency     1.92ms    1.43ms  55.26ms   90.86%     Req/Sec     5.46k   257.26     6.08k    88.30%   1629324 requests in 30.00s, 203.55MB read Requests/sec:  54304.14 Transfer/sec:      6.78MB Echo:$ wrk -t 10 -c 100 -d 30 http://127.0.0.1:8001/ Running 30s test @ http://127.0.0.1:8001/   10 threads and 100 connections   Thread Stats   Avg      Stdev     Max    /- Stdev     Latency     2.83ms    3.76ms  98.38ms   90.20%     Req/Sec     4.79k     0.88k   45.22k    96.27%   1431144 requests in 30.10s, 178.79MB read Requests/sec:  47548.11 Transfer/sec:      5.94MB案例目前使用在 健康一线 的私有项目中。手册[godoc](http://godoc.org/github.com/go-baa/baa)贡献Baa的灵感来自 [beego](https://github.com/astaxie/beego) [echo](https://github.com/labstack/echo) [macaron](https://github.com/go-macaron/macaron)- [safeie](https://github.com/safeie)、[micate](https://github.com/micate) - Author- [betty](https://github.com/betty3039) - Language Consultant- [Contributors](https://github.com/go-baa/baa/graphs/contributors)LicenseThis project is under the MIT License (MIT) See the [LICENSE](https://raw.githubusercontent.com/go-baa/baa/master/LICENSE) file for the full license text. 标签:Web框架
【文件预览】:
baa-master
----di_test.go(1KB)
----.gitignore(36B)
----context_test.go(18KB)
----render.go(888B)
----README.md(5KB)
----static.go(3KB)
----request.go(691B)
----json.go(164B)
----request_test.go(789B)
----doc.go(304B)
----jsoniter.go(239B)
----baa.go(10KB)
----di.go(767B)
----_fixture()
--------cert()
--------index1.html(146B)
--------index2.html(143B)
--------img()
--------favicon.ico(9KB)
----LICENSE(1KB)
----tree_test.go(8KB)
----router.go(2KB)
----tree.go(12KB)
----baa_test.go(4KB)
----render_test.go(983B)
----README_zh-CN.md(5KB)
----response_test.go(760B)
----context.go(17KB)
----logger_test.go(12B)
----.travis.yml(613B)
----static_test.go(2KB)
----logger.go(368B)
----response.go(3KB)

网友评论