Skip to content

Releases: softwaremill/sttp

v3.0.0-RC8

06 Nov 22:18
Compare
Choose a tag to compare

What’s Changed

v3.0.0-RC7

27 Oct 16:29
Compare
Choose a tag to compare

What’s Changed

  • Compile httpclient backends for 2.12 (#735) @adamw

v3.0.0-RC6

24 Oct 09:12
Compare
Choose a tag to compare

What’s Changed

v3.0.0-RC5

29 Sep 16:24
Compare
Choose a tag to compare

This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.

sttp client v3 uses a new package name (sttp.client3) and organization (com.softwaremill.sttp.client3). This way old and new sttp client versions can be used side-by-side. Make sure to update your imports and build dependencies!

Documentation is updated for the new version.

Breaking changes since v2:

SttpBackend trait

The trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:

SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]

The second type parameter now contains a list of supported additional capabilities. This can include:

  • an implementation of Streams
  • WebSockets

Finally, the type of supported streams is not given directly, but wrapped in a Streams object. For example, the types of the AkkaHttpBackend and AsyncHttpClientZioBackend backends now are:

SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]

Request type

The type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:

Request[T, Nothing] -> Request[T, Any]

Similarly, the type of ResponseAs changed.

The Request.send() method, which used an implicit SttpBackend is deprecated. Instead, use Request.send(backend), giving the backend explicitly.

SttpBackendStub

  • method name change: thenRespondWrapped -> thenRespondF
  • when nothing is stubbed, an exception (failed effect) is thrown, instead of returning 404

Other

  • ResponseError -> ResponseException, but type aliases are provided
  • ResponseException is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E] now would be ResponseException[String, E]
  • streamBody sets application/octet-stream as the content type by default
  • the default execution context used in the akka-http backend is different: instead of global, the EC backing the provided actor system is used
  • for zio backends, the send method has been moved from SttpClient to the package (for consistency with other zio libraries)
  • logging backends have been combined into a single one, exposing various configuration options

v2.2.9

22 Sep 12:00
Compare
Choose a tag to compare

What’s Changed

v3.0.0-RC4

16 Sep 16:54
Compare
Choose a tag to compare

This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.

sttp client v3 uses a new package name (sttp.client3) and organization (com.softwaremill.sttp.client3). This way old and new sttp client versions can be used side-by-side. Make sure to update your imports and build dependencies!

Breaking changes since v2:

SttpBackend trait

The trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:

SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]

The second type parameter now contains a list of supported additional capabilities. This can include:

  • an implementation of Streams
  • WebSockets

Finally, the type of supported streams is not given directly, but wrapped in a Streams object. For example, the types of the AkkaHttpBackend and AsyncHttpClientZioBackend backends now are:

SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]

Request type

The type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:

Request[T, Nothing] -> Request[T, Any]

Similarly, the type of ResponseAs changed.

The Request.send() method, which used an implicit SttpBackend is deprecated. Instead, use Request.send(backend), giving the backend explicitly.

SttpBackendStub

  • method name change: thenRespondWrapped -> thenRespondF
  • when nothing is stubbed, an exception (failed effect) is thrown, instead of returning 404

Other

  • ResponseError -> ResponseException, but type aliases are provided
  • ResponseException is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E] now would be ResponseException[String, E]
  • streamBody sets application/octet-stream as the content type by default
  • the default execution context used in the akka-http backend is different: instead of global, the EC backing the provided actor system is used
  • for zio backends, the send method has been moved from SttpClient to the package (for consistency with other zio libraries)
  • logging backends have been combined into a single one, exposing various configuration options

v3.0.0-RC3

15 Sep 13:50
Compare
Choose a tag to compare

This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.

Breaking changes since v2:

SttpBackend trait

The trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:

SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]

The second type parameter now contains a list of supported additional capabilities. This can include:

  • an implementation of Streams
  • WebSockets

Finally, the type of supported streams is not given directly, but wrapped in a Streams object. For example, the types of the AkkaHttpBackend and AsyncHttpClientZioBackend backends now are:

SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]

Request type

The type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:

Request[T, Nothing] -> Request[T, Any]

Similarly, the type of ResponseAs changed.

The Request.send() method, which used an implicit SttpBackend is deprecated. Instead, use Request.send(backend), giving the backend explicitly.

SttpBackendStub

  • method name change: thenRespondWrapped -> thenRespondF
  • when nothing is stubbed, an exception (failed effect) is thrown, instead of returning 404

Other

  • ResponseError -> ResponseException, but type aliases are provided
  • ResponseException is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E] now would be ResponseException[String, E]
  • streamBody sets application/octet-stream as the content type by default
  • the default execution context used in the akka-http backend is different: instead of global, the EC backing the provided actor system is used
  • for zio backends, the send method has been moved from SttpClient to the package (for consistency with other zio libraries)
  • logging backends have been combined into a single one, exposing various configuration options

v3.0.0-RC2

10 Sep 09:35
Compare
Choose a tag to compare

This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.

Breaking changes since v2:

SttpBackend trait

The trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:

SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]

The second type parameter now contains a list of supported additional capabilities. This can include:

  • an implementation of Streams
  • WebSockets

Finally, the type of supported streams is not given directly, but wrapped in a Streams object. For example, the types of the AkkaHttpBackend and AsyncHttpClientZioBackend backends now are:

SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]

Request type

The type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:

Request[T, Nothing] -> Request[T, Any]

Similarly, the type of ResponseAs changed.

The Request.send() method, which used an implicit SttpBackend is deprecated. Instead, use Request.send(backend), giving the backend explicitly.

SttpBackendStub

  • method name change: thenRespondWrapped -> thenRespondF
  • when nothing is stubbed, an exception (failed effect) is thrown, instead of returning 404

Other

  • ResponseError -> ResponseException, but type aliases are provided
  • ResponseException is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E] now would be ResponseException[String, E]
  • streamBody sets application/octet-stream as the content type by default
  • the default execution context used in the akka-http backend is different: instead of global, the EC backing the provided actor system is used
  • for zio backends, the send method has been moved from SttpClient to the package (for consistency with other zio libraries)
  • logging backends have been combined into a single one, exposing various configuration options

v2.2.8

07 Sep 15:15
Compare
Choose a tag to compare

What’s Changed

  • Wrap mutable httpclient builder in monad.eval, so that the request is properly constructed when the effect is re-used (#677) @adamw
  • Add more ergonomic zio stubbing (#674) @paulpdaniels
  • Update sbt-mdoc to 2.2.6 (#673) @scala-steward
  • Lazy logging (don't construct log messages if specified log level disabled) (#671) @poslegm

v2.2.7

01 Sep 17:18
Compare
Choose a tag to compare

What’s Changed

  • Lazy logging (don't construct log messages if specified log level disabled) (#671) @poslegm