core

module
v0.0.0-...-d36796e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2023 License: MIT

README

Shana: Cloud native RPC framework

Go Go Reference

Shana is under active development and in a very early stage (in POC phase). Don't use it in any production environment.

Shana is a next generation cloud native RPC framework. It is designed to be a Go framework plus set of tool chains to make cloud native applications development much easier.

Design goals:

  • Cloud native: Shana will be bundled with cloud native infrastructures, such as kubenetes, containerd, etc. It manages the whole microservice ecosystem rather than just a single service.
  • Focused: With Shana, developing a microservice will be as simple as writing a function. Developers will be able to focus on business logic and leave the rest to Shana.
  • Smart performance optimization: Shana will analyze all Go code and generate optimized code for each microservice. There will be almost no need to tune performance manually, e.g. using sync.Pool to reuse objects. Shana will do it for developers automatically. Shana will be able to also use the performance profiles generated by live microservices to optimize the code more intelligently.

To get start with Shana, we can use the shana command line tool to create new project and run it locally.

The document for the package core package is not ready now. APIs are not stable at current stage. There are some samples in Shana samples project, which can help us to understand how to use the package core.

(To be continued...)

License

Shana is licensed under the MIT license. See LICENSE for the full license text.

Directories

Path Synopsis
Package config provides a way to load config data from a config file.
Package config provides a way to load config data from a config file.
Package data provides utilities to query, merge and patch data of map[string]any.
Package data provides utilities to query, merge and patch data of map[string]any.
Package errors provides utilities to create and handle all kinds errors.
Package errors provides utilities to create and handle all kinds errors.
Package init provides a function to initialize data and its struct fields in depth-first order.
Package init provides a function to initialize data and its struct fields in depth-first order.
internal
rpc
rpc
httpjson
Package httpjson provides utilities to handle Shana-opinioned HTTP JSON requests.
Package httpjson provides utilities to handle Shana-opinioned HTTP JSON requests.
Validator is a package to provide lots of useful validators to validate API request data.
Validator is a package to provide lots of useful validators to validate API request data.
alphabet
Package alphabet provides a set of string validators.
Package alphabet provides a set of string validators.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL