Awesome
Yokai
<p align="center"> <img src="docs/assets/images/yokai-bck.png" width="300" /> </p><!-- TOC --> <!-- TOC -->Simple, modular, and observable Go framework for backend applications.
Goals
Building backend applications with Go is amazing.
But to build production-grade
applications, you need to put in place a bunch of efforts and boilerplate code, introducing complexity not even related to the logic of your application (like dependencies wiring, configuration management, observability instrumentation, etc.).
To solve this, Yokai was created with the following goals in mind:
Simple
: it is easy to use, configure and test, enabling you to iterate fast and deliver quickly maintainable applications.Modular
: it can be extended with the available Yokai modules, or with your own, to build evolvable applications.Observable
: it comes with built-in logging, tracing and metrics instrumentation, to build reliable applications.
In other words, Yokai lets you focus on your application logic, while taking care of the rest.
Documentation
Yokai's documentation
is available at https://ankorstore.github.io/yokai.
Overview
Architecture
- Yokai
core modules
preloads logging, tracing, metrics and health check instrumentation, and expose a private HTTP server for infrastructure and debugging needs. - Yokai
extensions modules
can be added to enrich your application features, like public HTTP / gRPC servers, workers, ORM, etc. You can also add the contrib modules or your own. - Those are made available in Yokai
dependency injection system
, on which you can rely to build your application logic.
Foundations
Yokai was built using robust
and well known
Go libraries, such as:
- Echo for HTTP servers
- gRPC-go for gRPC servers
- Viper for configuration management
- OTEL for observability instrumentation
- Fx for dependency injection system
- and more.
Extensions
Yokai's extension system
enables you to enrich
your application features with:
- the Yokai
built-in
modules - the Yokai contrib modules
- your own modules
Getting started
Yokai provides ready to use application templates
to start your projects:
- for gRPC applications
- for HTTP applications
- for worker applications
Showroom
Yokai provides a showroom repository with demo applications
, ready to run, to see it in action:
Contributing
This repository uses release-please to automate Yokai's modules release process.
[!IMPORTANT] You must provide atomic and conventional commits, as the release process relies on them to determine the version to release and to generate the release notes.