Skip to content

Latest commit

 

History

History
96 lines (64 loc) · 4.44 KB

README.md

File metadata and controls

96 lines (64 loc) · 4.44 KB

Yokai

License: MIT Go version codecov Documentation Awesome Go

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

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:

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.