go-lanai is an application frameworks and a set of modules that make writing applications easy. It provides everything you need to embrace go-lang in an enterprise environment. You can use it for many kinds of architectures depending on your need, from microservice to standalone application.
go-lanai is inspired by the Spring framework and the family of Spring projects. Developers looking to port a Spring application to go-lang can use go-lanai as a feature by feature replacement of Spring in most cases.
go-lanai's dependency injection functionality is provided by uber-go/fx. Basic understanding of dependency injection is helpful when using go-lanai.
- The auth example is a web service that can serve as the Oauth2 authorization server.
- The data example is a web service that stores and retrieves data from the database.
- In the skeleton example, we demonstrate how to create a service from scratch using an OpenAPI spec.
- In the opa example, we create a web service that uses open policy agent for RBAC.
- The web app security tutorial shows you how to build a web application with a private API, while using SAML sign on as the authentication method.
- docs/Develop.md - guide on setting up go-lanai based project for developers.
- docs/CICD.md - guide on setting up CI/CD for go-lanai based project.
- cmd/lanai-cli/initcmd/README.md - documentation for the make file templates and cli tools provided by go-lanai.
- cmd/lanai-cli/codegen/README.md - documentation for cli tool that generates code based on an OpenAPI contract.
Explore the go-lanai modules:
- actuator
- appconfig
- aws
- bootstrap
- certs
- consul
- data
- discovery
- dsync
- integrate
- kafka
- log
- migration
- opa
- opensearch
- profiler
- redis
- scheduler
- security
- swagger
- tenancy
- tracing
- vault
- web
- test
Thanks for your interest in contributing! There are many ways to contribute to this project.
Get started with our Contributing Guide (WIP).
Please note that our contributing guide is still "work in progress".