Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- 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 (almost 2 years ago)
- Last Synced: 2025-01-04T12:48:21.993Z (8 days ago)
- Topics: cli, engineering, framework, golang, middleware, openapi
- Language: Go
- Homepage: https://caicloud.github.io/nirvana/
- Size: 16.5 MB
- Stars: 520
- Watchers: 34
- Forks: 105
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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 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.