Skip to content

Releases: softwaremill/tapir

v1.9.6

21 Dec 18:09
cb3be88
Compare
Choose a tag to compare

What’s Changed

Dependency updates

v1.9.5

12 Dec 17:53
4361d82
Compare
Choose a tag to compare

What’s Changed

Dependency updates

v1.9.4

05 Dec 14:18
9a91e2a
Compare
Choose a tag to compare

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, use NettyConfig.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

Dependency updates

v1.9.3

30 Nov 15:22
dfe4a17
Compare
Choose a tag to compare

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

Dependency updates

v1.9.2

23 Nov 15:31
9ac47f0
Compare
Choose a tag to compare

What’s Changed

Dependency updates

v1.9.1

20 Nov 13:45
5350715
Compare
Choose a tag to compare

What’s Changed

v1.9.0

09 Nov 18:18
f458cb6
Compare
Choose a tag to compare

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

Dependency updates

v1.8.5

02 Nov 18:16
c3fc503
Compare
Choose a tag to compare

What’s Changed

Dependency updates

v1.8.4

31 Oct 13:01
0f2b3be
Compare
Choose a tag to compare

What’s Changed

Dependency updates

v1.8.3

26 Oct 17:51
878af61
Compare
Choose a tag to compare

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