Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/caicloud/nirvana

Golang Restful API Framework for Productivity
https://github.com/caicloud/nirvana

cli engineering framework golang middleware openapi

Last synced: about 20 hours ago
JSON representation

Golang Restful API Framework for Productivity

Awesome Lists containing this project

README

        

# Nirvana

[![Build Status](https://travis-ci.org/caicloud/nirvana.svg?branch=master)](https://travis-ci.org/caicloud/nirvana)
[![Coverage Status](https://coveralls.io/repos/github/caicloud/nirvana/badge.svg?branch=master)](https://coveralls.io/github/caicloud/nirvana?branch=master)
[![GoDoc](http://godoc.org/github.com/caicloud/nirvana?status.svg)](http://godoc.org/github.com/caicloud/nirvana)
[![Go Report Card](https://goreportcard.com/badge/github.com/caicloud/nirvana)](https://goreportcard.com/report/github.com/caicloud/nirvana)
[![OpenTracing Badge](https://img.shields.io/badge/OpenTracing-enabled-blue.svg)](http://opentracing.io)

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.

- [中文](https://caicloud.github.io/nirvana/zh-hans)
- [English (Expired)](https://caicloud.github.io/nirvana/en)

In addition, [nirvana-practice](https://github.com/caicloud/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](./CONTRIBUTING.md).
We welcome any code or non-code contribution!

## Licensing

Nirvana is licensed under the Apache License, Version 2.0. See [LICENSE](./LICENSE) for the full license text.