Releases: softwaremill/sttp
v4.0.0-M1
This is the first milestone release for the upcoming sttp 4. The focus of this release is to simplify the types used by sttp, improve type inference and error reporting, while keeping the same API.
Hence the good news: if you are using sttp 3, your code should work with minimal changes. These should concern mainly the types, and code organization (package names). If you'd like to help us and try out this release, please do - and report anything that has been unexpectedly broken.
sttp 4 uses a new organization (com.softwaremill.sttp.client4
) and package name (sttp.client4
), so you can safely use both v3 and v4 in a single codebase.
If you'd like to test the new release, check out the updated quickstart documentation page.
And finally, for feedback regarding this release, or suggestions on what to improve in further milestone releases (NOW is the best time to let us know what you found irritating or broken in sttp v3), please let us know on the community forum. Thank you!
Thanks to @adpi2 for the PR transforming how we define requests & backends.
Non-exhaustive list of breaking changes
- remove
RequestT
, introducePartialRequest
,Request
,StreamRequest
,WebSocketRequest
,WebSocketStreamRequest
- rename
SttpBackend
toGenericBackend
, introduce subtypes:Backend
,StreamBackend
,SyncBackend
etc. - rename
SttpBackendOptions
toBackendOptions
- rename
Backend.responseMonad
toBackend.monad
request.send(backend)
is now the only preferred method of sending a request- remove
SimpleHttpClient
- move
HttpClientBackend
to a dedicated package, introduceDefaultSyncBackend
andDefaultFutureBackend
Whatβs Changed
- Reformat using new scalafmt rules (#1764) @adamw
- Introduce default backends (#1763) @adamw
- Categorize backends into packages (#1762) @adamw
- Rename "responseMonad" to "monad" in Backend (#1758) @adamw
- Add a parameterless send() extension method for quick requests (#1761) @adamw
- Fix try & either backends (#1760) @adamw
- Remove TryHttpURLConnectionBackend (#1759) @adamw
- Remove deprecated exceptions type aliases (#1757) @adamw
- Drop Scala 2.11 (#1750) @adamw
- Drop SimpleHttpClient (#1749) @adamw
- Rename the client3 package to client4, as well as the artifact's organization (#1748) @adamw
- [Proposal] Add type hierarchy of requests and backends (#1703) @adpi2
Dependency updates
- Update upickle to 3.0.0 (#1755) @softwaremill-ci
- Update http4s-blaze-client to 0.23.14 (#1756) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.21.3 (#1754) @softwaremill-ci
- Update opentelemetry-api, ... to 1.24.0 (#1753) @softwaremill-ci
- Update circe-core, circe-generic, ... to 0.14.5 (#1752) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.13.39 (#1751) @softwaremill-ci
- Update http4s-ember-client to 0.23.18 (#1747) @softwaremill-ci
v3.8.13
Whatβs Changed
Dependency updates
- Update zio-streams to 2.0.10 (#1744) @softwaremill-ci
- Update akka-http-cors to 1.2.0 (#1743) @softwaremill-ci
v3.8.12
Whatβs Changed
Dependency updates
- Update scalafmt-core to 3.7.2 (#1741) @softwaremill-ci
- Update scribe to 3.11.1 (#1740) @softwaremill-ci
- Update cats-effect-kernel, ... to 3.4.8 (#1739) @softwaremill-ci
- Update zio-interop-reactivestreams to 2.0.1 (#1738) @softwaremill-ci
- Update opentelemetry-api, ... to 1.23.1 (#1737) @softwaremill-ci
- Update cats-effect, cats-effect-kernel, ... to 3.4.7 (#1736) @softwaremill-ci
- Update zio-streams to 2.0.9 (#1735) @softwaremill-ci
- Update armeria to 1.22.1 (#1734) @softwaremill-ci
- Update opentelemetry-api, ... to 1.23.0 (#1733) @softwaremill-ci
- Update armeria to 1.22.0 (#1731) @softwaremill-ci
- Update zio, zio-streams to 2.0.8 (#1732) @softwaremill-ci
- Update fs2-core, fs2-io, ... to 3.6.1 (#1730) @softwaremill-ci
- Update scribe to 3.11.0 (#1729) @softwaremill-ci
- Update fs2-core, fs2-reactive-streams to 3.6.0 (#1728) @softwaremill-ci
v3.8.11
v3.8.10
Drops support for 2.11 + JS/Native
Whatβs Changed
Dependency updates
- Update sbt-scalajs, scalajs-library_2.13, ... to 1.13.0 (#1713) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.3.7 (#1715) @softwaremill-ci
- Update scala3-library, ... to 3.2.2 (#1717) @softwaremill-ci
v3.8.9
Whatβs Changed
Dependency updates
- Update fs2-core, fs2-io to 3.5.0 (#1700) @softwaremill-ci
- Update scalafmt-core to 3.7.1 (#1711) @softwaremill-ci
- Update zio, zio-streams to 2.0.6 (#1698) @softwaremill-ci
- Update http4s-client to 0.23.18 (#1701) @softwaremill-ci
- Update cats-effect, cats-effect-kernel, ... to 3.4.5 (#1699) @softwaremill-ci
- Update scribe to 3.10.7 (#1709) @softwaremill-ci
- Update fs2-reactive-streams to 3.5.0 (#1705) @softwaremill-ci
v3.8.8
Whatβs Changed
- Armeria retry (#1658) @Pask423
- Set the content length, when explicitly specified, in HttpClient based backends (#1696) @adamw
- Adds method and optional status Labels to PrometheusBackend (#1651) @kevinmeredith
Dependency updates
- Update scalatest-flatspec, ... to 3.2.15 (#1694) @softwaremill-ci
- Update opentelemetry-api, ... to 1.22.0 (#1693) @softwaremill-ci
- Update scribe to 3.10.6 (#1692) @softwaremill-ci
- Update http4s-client to 0.23.17 (#1690) @softwaremill-ci
- Update sbt to 1.8.2 (#1691) @softwaremill-ci
- Update http4s-blaze-client, http4s-client to 0.22.15 (#1689) @softwaremill-ci
v3.8.7
Whatβs Changed
- De-deprecate async-http-client (#1688) @adamw
- Added replaceExisting flag for headers method (#1680) @ezequielmasciarelli
- Don't close the effect system executor, if it is the one used by HttpClient. Only close thread-pool based executors. (#1687) @adamw
- Fix websocket client using asWebSocket in JS (#1683) @adamw
Dependency updates
- Update sbt to 1.8.1 (#1685) @softwaremill-ci
v3.8.6
Whatβs Changed
- Use effect runtimes' executors for JDK client (#1671) @ybasket
- Update body.md due to two typos (#1673) @hermannhueck
- Update exceptions.md to correct a english syntax error (#1674) @hermannhueck
- docs: fix simple client name in quickstart (#1667) @francisdb
- Fix jsoniter coordinates (#1665) @tabdulradi
- Properly check cookie headers (in a case-insensitive way) (#1662) @adamw
Dependency updates
- Update model:core to 1.5.4 (#1679) @softwaremill-ci
- Update http4s-blaze-client to 0.23.13 (#1666) @softwaremill-ci
- Update armeria to 1.21.0 (#1669) @softwaremill-ci
- Update cats-effect-kernel, ... to 3.4.4 (#1678) @softwaremill-ci
- Update finagle-http to 22.12.0 (#1675) @softwaremill-ci
- Update cats-effect-kernel, ... to 3.4.3 (#1672) @softwaremill-ci
- Update sbt-softwaremill-browser-test-js, ... to 2.0.12 (#1664) @softwaremill-ci
- Update opentelemetry-api, ... to 1.21.0 (#1661) @softwaremill-ci
- Update resilience4j-circuitbreaker, ... to 2.0.2 (#1660) @softwaremill-ci
- Update shared:akka, shared:core, shared:fs2, ... to 1.3.12 (#1644) @softwaremill-ci
- Update zio, zio-streams to 2.0.5 (#1657) @softwaremill-ci
- Update resilience4j-circuitbreaker, ... to 2.0.1 (#1656) @softwaremill-ci
- Update zio-json to 0.4.2 (#1655) @softwaremill-ci
- Update zio-json to 0.4.0 (#1652) @softwaremill-ci
v3.8.5
Whatβs Changed
- Add resourceUsingClient to Armeria backend, update docs. (#1640) @kamilkloch
- Replaced Dispatcher.apply with Dispatcher.parallel (CE 3.4). (#1633) @kamilkloch
- Fix parsing of Duration.Inf timeouts (#1649) @Pask423
- Changes in CI and build.sbt (#1631) @Pask423
- Enable HTTP version changing for HttpClient based backend (#1615) @Pask423
- [WIP] Timeout exception (#1630) @micsza
- Attempt to implement CE backend (#1625) @Pask423
- Add .resourceUsingClient to HttpClient backends. (#1619) @kamilkloch
- Absorb exceptions while mapping responses with impure functions in backend stub (#1628) @trobert
- Add .sbtopts. (#1629) @kamilkloch
- Scala Native support for cats and fs2 (#1614) @lolgab
- Expose request and response in PrometheusBackend metric customizations (#1611) @carstenlenz
- Changed to customRequest (#1602) @Pask423
Dependency updates
- Update cats-effect, cats-effect-kernel, ... to 3.4.2 (#1650) @softwaremill-ci
- Update scala-collection-compat to 2.9.0 (#1648) @softwaremill-ci
- Update scalaz-concurrent to 7.2.35 (#1647) @softwaremill-ci
- Update nscplugin, sbt-scala-native, ... to 0.4.9 (#1646) @softwaremill-ci
- Update sbt-scalajs, scalajs-compiler, ... to 1.12.0 (#1645) @softwaremill-ci
- Update resilience4j-circuitbreaker, ... to 2.0.0 (#1641) @softwaremill-ci
- Update fs2-core, fs2-io, ... to 3.4.0 (#1639) @softwaremill-ci
- Update logback-classic to 1.4.5 (#1636) @softwaremill-ci
- Update scribe to 3.10.5 (#1637) @softwaremill-ci
- Update cats-effect, cats-effect-kernel, ... to 3.4.1 (#1634) @softwaremill-ci
- Update opentelemetry-api, ... to 1.20.1 (#1632) @softwaremill-ci
- Update cats-effect, cats-effect-kernel to 3.4.0 (#1627) @softwaremill-ci
- Update model:core to 1.5.3 (#1626) @softwaremill-ci
- Update opentelemetry-api, ... to 1.20.0 (#1624) @softwaremill-ci
- Update sbt to 1.8.0 (#1623) @softwaremill-ci
- Update armeria to 1.20.3 (#1622) @softwaremill-ci
- Update nscplugin, sbt-scala-native, ... to 0.4.8 (#1620) @softwaremill-ci
- Update scala3-library, ... to 3.2.1 (#1618) @softwaremill-ci
- Update armeria to 1.20.2 (#1617) @softwaremill-ci
- Update sbt to 1.7.3 (#1604) @softwaremill-ci
- Update scalafmt-core to 3.6.1 (#1605) @softwaremill-ci
- Update scalafmt-core to 3.6.0 (#1600) @softwaremill-ci