https://github.com/caicloud/nirvana
Golang Restful API Framework for Productivity
https://github.com/caicloud/nirvana
cli engineering framework golang middleware openapi
Last synced: 10 months ago
JSON representation
Golang Restful API Framework for Productivity
- Host: GitHub
- URL: https://github.com/caicloud/nirvana
- Owner: caicloud
- License: apache-2.0
- Created: 2017-09-15T08:56:03.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-02-23T05:28:04.000Z (almost 3 years ago)
- Last Synced: 2025-04-03T21:12:36.249Z (10 months ago)
- Topics: cli, engineering, framework, golang, middleware, openapi
- Language: Go
- Homepage: https://caicloud.github.io/nirvana/
- Size: 16.5 MB
- Stars: 522
- Watchers: 33
- Forks: 105
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Nirvana

[](https://travis-ci.org/caicloud/nirvana)
[](https://coveralls.io/github/caicloud/nirvana?branch=master)
[](http://godoc.org/github.com/caicloud/nirvana)
[](https://goreportcard.com/report/github.com/caicloud/nirvana)
[](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.