airframe
airframe copied to clipboard
Milestone: Airframe 2024
Here are the roadmap items for 2024, version 24.x.x series.
New Features
- [x] Scala Native Support (for Scala Native 0.5.x, Scala 3)
- Airframe Book #2169
- A walk-through documentation. For example, using https://github.com/rust-lang/mdBook.
- Rewriting the existing documentation was found to be hard work. It's better to start a new one from scratch.
- RPC
- Cross-language HTTP/RPC client generator, targetting Python, Rust
- Command line RPC client
- Leverage JDK Loom (Fiber)
- Explore approaches for using lightweight threads.
- [x] Use Fetch API https://github.com/wvlet/airframe/issues/2897
- Pretty print of objects https://github.com/wvlet/airframe/issues/2730
- AirSpec
- [x] Log-level arg #3305
- Show code context #2347
- Code-size reduction #3170
- Rx
- https://github.com/wvlet/airframe/issues/2951
Deprecation
- airframe-http-finagle Finagle's development activity has significantly dropped. As Netty-backend has matured enough, we can safely drop the support for Finagle, which can make our code base fully compatible with Scala 2/3. https://github.com/wvlet/airframe/issues/3103
- https://github.com/wvlet/airframe/issues/2440
- airframe-config integration with DI.
newDesign
// Set an environment to use
.withConfigEnv(env = "production", defaultEnv = "default")
// Load configs from YAML files
.bindConfigFromYaml[LogConfig]("access-log.yml")
.bindConfigFromYaml[ServerConfig]("server.yml")
This can be replaced with bind[LogConfig].toInstance(xxx)
- Drop JDK8/11 Support. While Scala 3 still supports JDK8, we are planning to switch to at least JDK17 or higher and remove any tests against JDK older than JDK17.
- airframe-di. In-trait binding support has been dropped in Scala 3. It will be marked deprecated in Scala 2. #3329