giiita / refuel

Lightweight dependency injection engine and DI-driven tools.

Version Matrix

Refuel

CircleCI Gitter chat Maven Central

refuel-container-macro Scala version support

refuel-container Scala version support

refuel-util Scala version support

refuel-json-macro Scala version support

Latest version of json

Latest version of http

Latest version of auth

Latest version of cipher

Latest version of cipher

Refuel is a powerful DI based framework.

Since there is only one maintainer, support for Scala3 will be phased in. At the moment, only refuel-container is supported for Scala3.

refuel-container (Compatible with Scala3)

Powerful DI framework with macros.

It is very simple and does not require a large number of component files in the executable module or explicit dependency or scope declarations. Allows you to focus on the work that needs to be done. It has a high affinity with DDD and layering. It is also highly flexible and testable, providing strong support for application development and open source library development.

All other refuel modules are based on refuel-container and can be used out-of-the-box.

refuel-util (Compatible with Scala3)

Rich type class interfaces.
Provides extended functions such as date and time, period, and collection.

refuel-json (Compatible with Scala3)

You can handle JSON most easily with macro. Even without warming up, the conversion works fast and requires little declaration of serialize / deserialize codecs.

refuel-http

Http server client with Akka-HTTP.
In future, we plan to implement test stub control by dependency injection..

refuel-auth-provider

Can use a SAML service provider that supports akka http.
At this time, there is no Identity provider feature available.

refuel-cipher

The wrapper library that supports the interconversion of RSA / AES encryption methods.

refuel-oauth-provider

Supports building an OAuth authorization server for Akka HTTP.

All authorization endpoints, token endpoints, and other grant flows are compliant with the OAuth 2.0 / 2.1 specification, and can be implemented mostly by implementing the prepared IF without having to think too much about the flow.