ijumps / nirvana

Golang Restful API Framework for Productivity

Home Page:https://caicloud.github.io/nirvana/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nirvana

Build Status Coverage Status GoDoc Go Report Card OpenTracing Badge

Nirvana is a golang API framework designed for productivity and usability. It aims to be the building block for all golang services in Caicloud. The high-level goals and features include:

  • consistent API behavior, structure and layout across all golang projects
  • improve engineering productivity with openAPI and client generation, etc
  • validation can be added by declaring validation method as part of API definition
  • out-of-box instrumentation support, e.g. metrics, profiling, tracing, etc
  • easy and standard configuration management, as well as standard cli interface

Nirvana is also extensible and performant, with the goal to support fast developmenet velocity.

Getting Started

Nirvana provides two languages of documentations to help you to dig into this framework. But only chinese docs are fresh. If you can help to update these docs, we are very appreciate it.

Features

  • API Framework based on Descriptors.
  • Request Filter
  • Middleware
  • Validator
  • Plugins
    • Metrics
    • Tracing
  • API Doc Generation
  • Client Generation

Contributing

If you are intrested in this framework and want to contribute to it, you can get more deatils from CONTRIBUTING.md

Licensing

Nirvana is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

About

Golang Restful API Framework for Productivity

https://caicloud.github.io/nirvana/

License:Apache License 2.0


Languages

Language:Go 98.4%Language:Python 1.1%Language:Shell 0.3%Language:Makefile 0.2%