Airframe http://wvlet.org/airframe is a collection of lightweight libraries useful for building full-fledged applications in Scala. As its core Airframe provides a dependency injection (DI) library tailored to Scala. While Google's Guice is designed for injecting Java objects (e.g., using constructors or providers), Airframe redesigned it for Scala traits so that we can mix-in traits that have several object dependencies.
- Airframe Home
- Documentation
- Use Cases
- Configuring applications, managing resources, service mix-in, etc.
- DI Framework Comparison
- Comparing Airframe with Google Guice, Macwire, Dagger2, etc.
- Airframe Utilities
- A collection of useful Scala libraries that can be used with Airframe.
- Release Notes
build.sbt
Airframe is a collection of Scala libraries. You can include one or more of them to your dependencies:
val AIRFRAME_VERSION = "(version)"
# For Scala 2.11, 2.12, and 2.13
libraryDependencies ++= Seq(
"org.wvlet.airframe" %% "airframe" % AIRFRAME_VERSION, // Dependency injection
"org.wvlet.airframe" %% "airframe-codec" % AIRFRAME_VERSION, // MessagePack-based schema-on-read transcoder
"org.wvlet.airframe" %% "airframe-config" % AIRFRAME_VERSION, // YAML-based configuration
"org.wvlet.airframe" %% "airframe-jmx" % AIRFRAME_VERSION, // JMX entry
"org.wvlet.airframe" %% "airframe-jdbc" % AIRFRAME_VERSION, // JDBC connection pool
"org.wvlet.airframe" %% "airframe-log" % AIRFRAME_VERSION, // Logging
"org.wvlet.airframe" %% "airframe-metrics" % AIRFRAME_VERSION, // Metrics units
"org.wvlet.airframe" %% "airframe-opts" % AIRFRAME_VERSION, // Command-line option parser
"org.wvlet.airframe" %% "airframe-surface" % AIRFRAME_VERSION, // Object surface inspector
"org.wvlet.airframe" %% "airframe-tablet" % AIRFRAME_VERSION // Table data reader/writer
)
# For Scala.js, the following libraries can be used:
libraryDependencies ++= Seq(
"org.wvlet.airframe" %%% "airframe" % AIRFRAME_VERSION, // Dependency injection
"org.wvlet.airframe" %%% "airframe-log" % AIRFRAME_VERSION, // Logging
"org.wvlet.airframe" %%% "airframe-metrics" % AIRFRAME_VERSION, // Metrics units
"org.wvlet.airframe" %%% "airframe-surface" % AIRFRAME_VERSION // Object surface inspector
)
See Documentation for further details.