airframe icon indicating copy to clipboard operation
airframe copied to clipboard

Milestone: Airframe 2024

Open xerial opened this issue 1 year ago • 0 comments

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

xerial avatar Jan 09 '24 01:01 xerial