Skip to content
wvletPublic

Latest commit

 

History

5,074 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gitter Chat CI Status codecov scala-index maven central Scala.js

Airframe

Airframe https://wvlet.org/airframe is essential building blocks for developing applications in Scala, including logging, object serialization using JSON or MessagePack, object wiring with lifecycle management (airframe-di), http server/client with RPC support, functional testing with AirSpec, etc.

Tip

For new Scala 3 projects, use Uni. Uni is the Scala 3 successor of Airframe, providing object wiring, logging, JSON/MessagePack codecs, and more. Airframe continues to be maintained for existing Scala 2 and Scala 3 users. Uni documentation · Airframe → Uni migration guide · llms.txt

Resources

Framework

rpc

logo

For Developers

Airframe uses Scala 3 as the default Scala version. To use Scala 2.x versions, run ++ 2.12 or ++ 2.13 in the sbt console.

Releasing

For every PR, release-drafter will automatically label PRs using the rules defined in .github/release-drafter.yml.

To publish a new version, first, create a new release tag as follows:

$ git switch main
$ git pull
$ ruby ./scripts/release.rb

This step will update docs/release-noteds.md, push a new git tag to the GitHub, and create a new GitHub relese note. After that, the artifacts will be published to Sonatype (a.k.a. Maven Central). It usually takes 10-30 minutes.

Note: Do not create a new tag from GitHub release pages, because it will not trigger the GitHub Actions for the release.

Binary Compatibility

When changing some interfaces, binary compatibility should be checked so as not to break applications using older versions of Airframe. In build.sbt, set AIRFRAME_BINARY_COMPAT_VERSION to the previous version of Airframe as a comparison target. Then run sbt mimaReportBinaryIssues to check the binary compatibility.

LICENSE

Apache v2

Contributors

Many thanks to everyone who has contributed to our progress:

Contributors