Releases: softwaremill/tapir
v1.9.6
What’s Changed
- Updated Http4sWebSockets. (#3393) @kamilkloch
- Added CORSInterceptor example for PekkoServer (#3423) @amorfis
- Use full names in macro to avoid collision - fixes #3407 (#3413) @ivan-klass
- Most examples moved from Scala 2 -> Scala 3 (#3404) @amorfis
Dependency updates
- Update gatling-test-framework to 3.10.3 (#3420) @softwaremill-ci
- Update magnolia to 1.1.8 (#3419) @softwaremill-ci
- Update netty-reactive-streams-http to 3.0.2 (#3418) @softwaremill-ci
- Update play, play-akka-http-server, ... to 2.9.1 (#3414) @softwaremill-ci
- Update gatling-test-framework to 3.10.2 (#3415) @softwaremill-ci
- Update gatling-sbt to 4.7.0 (#3409) @softwaremill-ci
- Update gatling-charts-highcharts to 3.10.0 (#3411) @softwaremill-ci
- Update netty-all to 4.1.104.Final (#3406) @softwaremill-ci
- Update vertx-web to 4.5.1 (#3400) @softwaremill-ci
- Update zio, zio-streams, zio-test, ... to 2.0.20 (#3398) @softwaremill-ci
- Update netty-all to 4.1.103.Final (#3399) @softwaremill-ci
- Update magnolia to 1.1.7 (#3395) @softwaremill-ci
- Update netty-all to 4.1.102.Final (#3396) @softwaremill-ci
v1.9.5
What’s Changed
- Fix Json Schema meta schema ID (#3394) @dvgica
- Fix the hidden schema annotation for Scala 3 (#3392) @adamw
- Support MaxContentLength for zio-http, fix file upload (#3391) @kciesielski
- Add date-time support to codegen (#3390) @markussammallahti
- MaxContentLength for Pekko and Akka, Play, Vertx (#3375) @kciesielski
- When calculating the client ip, allow the possibility of the address to be null (#3389) @adamw
- fix(server): proper path segment decoding (#3386) @finalchild
- Fix Circe Yaml (#3388) @zarthross
- Fix codegen method parsing (#3387) @markussammallahti
- Fix: ContentType is not set for multipart file upload in VertxServer (#3383) @yoskhdia
- MaxContentLength for http4s, jdkhttp, play (#3374) @kciesielski
- fix doc bytes (#3372) @timzaak
Dependency updates
- Update opentelemetry-api, ... to 1.33.0 (#3381) @softwaremill-ci
- Update armeria to 1.26.4 (#3380) @softwaremill-ci
- Update play-ahc-ws-standalone to 2.2.5 (#3376) @softwaremill-ci
- Update sbt-twirl to 2.0.3 (#3379) @softwaremill-ci
- Update netty-reactive-streams-http to 3.0.1 (#3378) @softwaremill-ci
- Update play-ahc-ws-standalone to 3.0.1 (#3377) @softwaremill-ci
v1.9.4
MaxContentLength for Netty
All Netty backends now support restricting maximum request body length. This per-endpoint protection ensures that no more bytes are loaded from body than given limit. Exceeding the limit results in HTTP 413 Payload Too Large response. For details see https://tapir.softwaremill.com/en/latest/endpoint/security.html#limiting-request-body-length for details.
More backends will support this feature in upcoming versions.
- If you have been using the global
NettyConfig.maxContentLength
setting, it's no longer available. Please switch to the new per-endpoint annotation. NettyConfig.defaultNoStreaming
has been removed, useNettyConfig.default
Removed ZIO 1.x modules
Tapir integrations for zio
, zio-json
, zio-http
, etc. are now available only for ZIO 2.x
What’s Changed
- Remove test leftovers (#3370) @kciesielski
- Remove zio1 support (#3369) @kciesielski
- Adjust Play 2.9 to changes in RequestBody (#3368) @kciesielski
- MaxContentLength support for Netty pt 2 (#3337) @kciesielski
- Update pekko-discovery, pekko-slf4j, ... to 1.0.2 (#3363) @softwaremill-ci
- separated test report (#3351) @micsza
- Fix automerge - use squash method. (#3358) @micsza
- use-repo-token-for-rebase-cmd-dispatch (#3353) @micsza
Dependency updates
- Update json4s-core, json4s-jackson to 4.0.7 (#3365) @softwaremill-ci
- Update swagger-ui to 5.10.3 (#3364) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.25.0 (#3362) @softwaremill-ci
- Update logback-classic to 1.4.14 (#3361) @softwaremill-ci
- Update zio-http to 3.0.0-RC4 (#3357) @softwaremill-ci
v1.9.3
Play 2.9 support
Recently Tapir switched its Play modules to version 3. This versions brings support to Play 2.9. Please read the new docs to learn how to configure the dependencies: https://tapir.softwaremill.com/en/latest/server/play.html
Note that tapir-play29-server
works only for Scala 2.13, but tapir-play29-client
and tapir-json-play29
are available for Scala 2.12, 2.13, and 3.
What’s Changed
- Add module with Play 2.9 support (#3313) @cptwunderlich
- Update optionallyAutoPong. (#3350) @kamilkloch
- Replace mergify with GHAs (#3346) @micsza
- Revert "Pretty layout for tests results." (#3352) @micsza
- Pretty layout for tests results. (#3348) @micsza
- Add example and warning for comma-separated query input values (#3344) @andreazube
- [CI] Tune test timeouts (#3342) @kciesielski
- Improve Http4sWebSockets.pipeToBody (#3340) @kamilkloch
Dependency updates
- Update logback-classic to 1.4.13 (#3349) @softwaremill-ci
- Update asyncapi-circe-yaml, ... to 0.7.3 (#3341) @softwaremill-ci
- Update scalafmt-core to 3.7.17 (#3324) @softwaremill-ci
v1.9.2
What’s Changed
- MaxContentLength support (streaming) (#3319) @kciesielski
- [CI] Compile tests in compileScoped (#3336) @kciesielski
- Use setup-node to install npm (#3333) @kciesielski
- make schema nullable instead of adding null-types into the apispec schema (#3331) @cornerman
Dependency updates
- Update sbt-twirl to 2.0.2 (#3323) @softwaremill-ci
- Update jwt-circe to 9.4.5 (#3334) @softwaremill-ci
- Update sbt-assembly to 2.1.5 (#3330) @softwaremill-ci
- Update armeria to 1.26.3 (#3329) @softwaremill-ci
- Update vertx-web to 4.5.0 (#3320) @softwaremill-ci
- Update http4s-circe, http4s-core, ... to 0.23.24 (#3318) @softwaremill-ci
- Update opentelemetry-api, ... to 1.32.0 (#3317) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.5.1 (#3311) @softwaremill-ci
- Update netty-all to 4.1.101.Final (#3310) @softwaremill-ci
v1.9.1
What’s Changed
- #3315 - upgrade prometheus client java to 1.1.0 (#3325) @gastonschabas
- Update docs for sbt-assembly config (#3328) @BranislavLazic
- Properly handle independent customisation of referenced schemas, where one is an option (#3327) @adamw
- Codegen any type support (#3314) @markussammallahti
- jdkhttp-server: Write multipart parts bigger than threshold to files (#3227) @jnatten
v1.9.0
New Loom-based backends
Backends based on Loom (Java virtual threads) have been migrated from the tapir-loom project, and are now a part of the main distribution. They require JDK 21. Read more:
Breaking changes
DecodeFailureHandler
DecodeFailureHandler
has become DecodeFailureHandler[F]
to allow effectful error handling. If you're using custom handlers, update them to the new apply
signature:
trait DecodeFailureHandler[F[_]] {
def apply(ctx: DecodeFailureContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}
RejectHandler
RejectHandler.apply
no longer takes a Failure
, but a RejectContext
, which encapsulates the failure, and the ServerRequest
as well, allowing using more information for your rejection handling.
trait RejectHandler[F[_]] {
def apply(ctx: RejectContext)(implicit monad: MonadError[F]): F[Option[ValuedEndpointOutput[_]]]
}
Full changelog
- [bugfix] Fix blocking implementation for CatsMonadAsyncError (#3309) @kciesielski
- Add RejectContext to RejectHandler. (#3285) @Grryum
- [tests] Implement serverWithStop in all test interpreters (#3306) @kciesielski
- Add type parameter F[_] to DecodeFailureHandler. (#3281) @Grryum
- Migrate servers from tapir-loom (#3304) @kciesielski
- Fix zio-interop-reactivestreams dependency (#3303) @kciesielski
- Support graceful shutdown in Netty server (#3294) @kciesielski
- syntactic sugar: add Codec.mapEither (#3299) @jnicoulaud-ledger
- feat: Update Iron to v2.3.0 (#3298) @Iltotore
Dependency updates
- Update client3:akka-http-backend, ... to 3.9.1 (#3308) @softwaremill-ci
- Update armeria to 1.26.2 (#3307) @softwaremill-ci
- Update iron to 2.3.0 (#3293) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.5.0 (#3305) @softwaremill-ci
- Update zio, zio-streams, zio-test, ... to 2.0.19 (#3302) @softwaremill-ci
- Update fs2-reactive-streams to 3.9.3 (#3301) @softwaremill-ci
- Update finatra-http-server, inject-app, ... to 23.11.0 (#3295) @softwaremill-ci
- Update play-json to 3.0.1 (#3300) @softwaremill-ci
v1.8.5
What’s Changed
- Add option to provide custom WS config in zio-http (#3291) @kyri-petrou
- [bugfix] Allow calling Pickler.derive on non-mirrored types (#3289) @kciesielski
Dependency updates
- Update circe-yaml to 1.15.0 (#3292) @softwaremill-ci
v1.8.4
What’s Changed
- Netty server side cancellation (#3256) @kciesielski
- update zio-http server to 3.0.0-RC3 (#3277) @lvitaly
Dependency updates
- Update armeria to 1.26.1 (#3286) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.24.4 (#3283) @softwaremill-ci
- Update sbt-assembly to 2.1.4 (#3279) @softwaremill-ci
- Update armeria to 1.26.0 (#3280) @softwaremill-ci
- Update netty-reactive-streams-http to 3.0.0 (#3262) @softwaremill-ci
v1.8.3
What’s Changed
- Only check content type range parameters if they are present (#3274) @adamw
- Update Play Framework and JsonPlay to support Scala 3 (#3089) @KapStorm (update to Play 3)
- Feature: Add iron's RefinedTypeOps support (#3245) @vbergeron
- Better toString in JsonDecodeException (#3250) @adamw
Dependency updates
- Update pekko-grpc-runtime, ... to 1.0.1 (#3270) @softwaremill-ci
- Update scalafmt-core to 3.7.15 (#3271) @softwaremill-ci
- Update magnolia to 1.3.4 (#3269) @softwaremill-ci
- Update sbt-twirl to 2.0.1 (#3264) @softwaremill-ci
- Update sbt-twirl to 1.6.2 (#3260) @softwaremill-ci
- Update sbt, sbt-dependency-tree to 1.9.7 (#3261) @softwaremill-ci
- Update play-json to 2.10.2 (#3259) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.24.2 (#3258) @softwaremill-ci
- Update netty-reactive-streams-http to 2.0.10 (#3257) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.4.0 (#3252) @softwaremill-ci