This ticket is a placeholder for tracking goals for Airframe 2020 development.
Reference: Airframe 19 Milestone: #528
airframe-codec
[ ] Performance improvement by switching to pure-Scala msgpack. 10%~20% performance improvement can be achieved compared to the current version
~[ ] PackSupport/UnpackSupport interface to define custom codec~ #511
[ ] Optimize the pack/unpack performance when input/output types are known
[ ] Check the presence of non-serializable types #836
airframe-control
[x] CircuitBreaker #763 #758
[ ] RateControl (e.g., leaky bucket)
[ ] Retry throttling
[ ] copy between streams #396
[ ] cache (like Guava's Cache). Probably this is the last resort to be free from Guava library dependency. exaple: FaultTolerantCache in robustools https://github.com/frsyuki/robustools
[x] Multi-map (added to airframe-http)
airframe-di
[ ] bindConfig { (D1, D2, ...) => C } #650
Integrating with famous Scala libraries
examples:
[ ] Using Airframe with Spark. We already have this example in production.
airframe-http
Scala As A Microservice IDL
[x] Support separting server/client-side implementations
Generate client code from the server definition #577 #492
[x] Create sbt-airframe-http sbt plugin
[x] Scala client generation
[x] Scala.js client generation
[x] API doc generation #453 #1178
[ ] Generate server stub #1026
[x] Support multiple function arguments #1100
[x] Add http logging #399
[x] RPC logging #1076
[x] (under consieration) Generate Open API specification #260 #1178
[ ] Recording snapshots in YAML or JSON local files for human-readability #1071
airframe-http-widget
[x] UI widget collection library for Scala.js #806
[ ] Server-side rendering
airframe-jdbc
[ ] Support inserting case class instances as table records #1132
airframe-jmx
[ ] json output for complex types #462
[ ] remote method call #463
airframe-launcher
[ ] Allow passing global option objects to child command
[ ] before/afterCommand hooks #1043
airframe-msgpack
[ ] Nested cursor support for the better error handling
[ ] Handle EOF without using EOFException for stream RPC support
[ ] Guess a schema of msgpack data #516
[ ] benchmark to utilize multiple-threads #509
airframe-sql
[ ] SQL filter evaluation for msgpack stream
SQL support
[x] SQL typer
[ ] SQL decomposer
SQL processing code generator
[ ] Scala target
airframe-http-rx
[x] Support override and append for the same name DOM attributes #961
[ ] ~Type-safe event handlers~
[x] airframe-rx-html: Functional DOM bulider
[x] Reactive updates of DOM elements with Rx[A]
[ ] CSS tags #1062
[ ] onUpdate #1050
airframe-http-widget
[x] variable
~[ ] virtual dom~ Unnecessary for now as we can embed Rx variables for local DOM updates
[x] UI widget collection #806
[ ] Add Monaco facade #1058
airspec
[x] test(..., design) { (d1, d2, ...) => } #872
[ ] Power assertion for test failures (e.g., show the condition expression and data differences)
[ ] Use function return values to record test results. There might be more meaningful usage of function return values (e.g., storing test data to DB, sending metrics to fluentd, etc.)
[ ] Asynchronous tests, returning Future type for Scala.js
~[ ] Support context.run[A](additional design) to support fine-grained design customization.~ We can use test(..., design = ...) instead
[ ] IntelliJ plugin #646
[x] Create a standalone launcher for running tests. #685
This ticket is a placeholder for tracking goals for Airframe 2020 development.
Reference: Airframe 19 Milestone: #528
airframe-codec
airframe-control
airframe-di
airframe-http
airframe-rpc
@RPC
annotationairframe-http-recorder
airframe-http-widget
airframe-jdbc
airframe-jmx
airframe-launcher
airframe-msgpack
airframe-sql
airframe-http-rx
airframe-http-widget
airspec
test(..., design) { (d1, d2, ...) => }
#872test(..., design = ...)
insteadScala.js 1.0.0