Skip to content

Yokai

License: MIT Go version codecov Documentation Awesome Go

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

Overview

Architecture

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:

Getting started

Yokai provides ready to use application templates to start your projects: