Skip to content

caicloud/nirvana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5080b02 · Jul 5, 2021
Nov 20, 2020
Apr 30, 2021
Dec 2, 2020
Jul 5, 2021
Oct 21, 2020
Dec 30, 2020
Jul 5, 2021
Jul 15, 2020
Sep 16, 2020
Apr 30, 2021
Nov 24, 2020
Nov 26, 2020
Aug 14, 2019
Nov 24, 2020
Jan 4, 2021
Jan 22, 2021
Jan 27, 2021
Jan 25, 2021
Dec 17, 2017
Aug 29, 2019
Feb 7, 2018
Jan 2, 2019
Nov 27, 2017
Apr 9, 2020
Apr 9, 2020
Aug 14, 2019
Jan 21, 2019
Jun 13, 2018
Jan 25, 2021
Jan 25, 2021
Nov 23, 2020

Repository files navigation

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 at 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 documentations in two languages to help you expore this framework. Note right now, only Chinese docs are kept up-to-date.

In addition, nirvana-practice provides a practical way for you to get familiar with Nirvana.

Features

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

Contributing

If you are interested in contributing to Nirvana, please checkout CONTRIBUTING.md. We welcome any code or non-code contribution!

Licensing

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