Skip to content

Finch 0.16-M5

Compare
Choose a tag to compare
@vkostyukov vkostyukov released this 21 Nov 23:02
· 906 commits to master since this release

Another milestone release for Finagle 17.11.

Improved Multipart Support

Multipart attributes are now decoupled from param(s) endpoints as they were instigating a multipart decoding on each optional param (see #860 for discussion and #865 for a fix).

scala> val foo = multipartAttribute("foo")
foo: io.finch.Endpoint[String] = foo

scala> val bar = multipartFileUpload("bar")
bar: io.finch.Endpoint[com.twitter.finagle.http.exp.Multipart.FileUpload] = bar

Circe's Printing Size Predictor

Circe's size predictor allows saving a couple of copy-and-grow iterations while printing into a binary output. It uses a very primitive form of a feedback controller to grow/shrink a potentially expected size based on the history of allocations (see circe/circe#739 for more details).

We've seen quite a great improvements in our ToServiceBenchamrk (around ~2x of throughput improvement) yet we were unable to reproduce the numbers with the wrk (i.e., end-to-end test). Based on that, this option should be considered experimental (use with caution and run your own tests).

Size prediction could be enabled with io.finch.circe.predictSize._ import (see #868).