# README
Nirvana

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.
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Functions
APIStyle returns a configurer to set api style into config.
ConfigInstallerFor gets installer by name.
Descriptor returns a configurer to add descriptors into config.
Filter returns a configurer to add filters into config.
IP returns a configurer to set ip into config.
Logger returns a configurer to set logger into config.
Modifier returns a configurer to add definition modifiers into config.
NewConfig creates a pure config.
NewDefaultConfig creates default config.
NewServer creates a nirvana server.
Port returns a configurer to set port into config.
RegisterConfigInstaller registers a config installer.
TLS returns a configurer to set certFile and keyFile in config.
# Interfaces
ConfigInstaller is used to install config to service builder.
Server is a complete API server.
# Type aliases
Configurer is used to configure server config.