Categorygithub.com/caicloud/nirvana
modulepackage
0.3.1
Repository: https://github.com/caicloud/nirvana.git
Documentation: pkg.go.dev

# README

Nirvana

Build Status Coverage Status GoDoc Go Report Card OpenTracing Badge

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.

# Constants

Banner shows an ASCII art of nirvana.
Logo presents an ASCII art of nirvana logo.

# Structs

Config describes configuration of server.

# 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.