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 1 month 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 7 years ago)
- Default Branch: master
- Last Pushed: 2023-02-23T05:28:04.000Z (about 2 years ago)
- Last Synced: 2025-04-03T21:12:36.249Z (about 1 month 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 interfaceNirvana 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.