Skip to content

eininst/ninja

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ninja

Build Status

a simple ioc for https://github.com/facebookgo/inject

⚙ Installation

go get -u github.com/eininst/ninja

⚡ Quickstart

package main

import (
	"github.com/eininst/ninja"
	"github.com/gofiber/fiber/v2"
)

type Router struct {
    Cfg    *ninja.Config `inject:""`
}

func (r *Router) Init(router fiber.Router) {
    router.Get("/", func(ctx *fiber.Ctx) error {
        return ctx.SendString("helloword")
    })
}

func main() {
    nj := ninja.NewApp("./examples/helloword.yml")
    ninja.Provide(new(Router))
	
    nj.Listen()
}

Config yaml

ninja:
  port: 8001
  middleware:
    - recover:
    - limiter:
        rate: 10
        burst: 200
        timeout: 5
    - status:
    - logger:
    - metrics:

---
profile: dev

redis:
  addr: kubernetes.docker.internal:6379
  db: 0
  poolSize: 100
  minIdleCount: 20

mysql:
  dsn: nft:Aa505814@tcp(localhost:3306)/credit?charset=utf8mb4&parseTime=True&loc=Local
  maxIdleCount: 32
  maxOpenCount: 128
  maxLifetime: 7200

rs:
  prefix: MQ_
  sender:
    maxLen: 100

---
profile: prod

redis:
  addr: kubernetes.docker.internal:6379
  db: 0
  poolSize: 100
  minIdleCount: 20

mysql:
  dsn: test:test123@tcp(localhost:3306)/credit?charset=utf8mb4&parseTime=True&loc=Local
  maxIdleCount: 32
  maxOpenCount: 128
  maxLifetime: 7200

Depends

https://github.com/gofiber/fiber #Fiber framework

https://github.com/facebookgo/inject #依赖注入

https://github.com/eininst/fiber-prefork-grace #Fiber Prefork(多进程)模式下的优雅退出

https://github.com/eininst/fiber-middleware-burst #Fiber的令牌桶限流器

https://github.com/eininst/fiber-middleware-recover #Fiber的错误处理中间件

https://github.com/eininst/fiber-middleware-redoc #Fiber redoc

See examples

License

MIT

About

ninja-fiber

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages