softwaremill/sttp
The Scala HTTP client you always wanted!
📋 What's Changed
- Carry cookies across redirects via an opt-in CookieStorage (#2671) (#2897) @adamw
- Select a single supported qop from a comma-separated advertised list (#2898) @adamw
- Add Scala Native support to http4s module (#2874) @majk-p
- Render multipart filename, content-type, and per-part headers in toCurl (#2893) @adamw
- Safe ByteBuffer array extraction (#2892) @adamw
📦 Dependency updates
- Update upickle to 4.4.3 (#2802) @softwaremill-ci
- Update scala3-compiler, scala3-library, ... to 3.3.7 (#2698) @softwaremill-ci
- Update opentelemetry-api, ... to 1.62.0 (#2878) @softwaremill-ci
- Update okhttp to 5.3.2 (#2728) @softwaremill-ci
- Update prometheus-metrics-core to 1.6.1 (#2867) @softwaremill-ci
- Update logback-classic to 1.5.33 (#2894) @softwaremill-ci
- Update zio-opentelemetry to 3.1.17 (#2896) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.13 (#2895) @softwaremill-ci
- + 5 more
📋 What's Changed
- Update scalafmt-core to 3.11.1 (#2883) @softwaremill-ci
- Update otel4s to 1.0.0, otel4s-sdk to 0.19.0 (#2879) @iRevive
📦 Dependency updates
- Update armeria to 1.39.0 (#2886) @softwaremill-ci
- Update opentelemetry-semconv to 1.41.1 (#2885) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.12 (#2884) @softwaremill-ci
- Update zio, zio-streams to 2.1.26 (#2877) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.11 (#2876) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.10 (#2875) @softwaremill-ci
- Update sbt, scripted-plugin to 1.12.11 (#2873) @softwaremill-ci
- Update pekko-stream to 1.6.0 (#2872) @softwaremill-ci
- + 6 more
📋 What's Changed
- Update otel4s to 1.0.0-RC1, otel4s-sdk to 0.19.0-RC1 (#2862) @iRevive
📦 Dependency updates
- Update client4:caching-backend, ... to 4.0.22 (#2861) @softwaremill-ci
📋 What's Changed
- Update scalafmt-core to 3.11.0 (#2860) @softwaremill-ci
- Update otel4s to 0.16.0, enable Scala Native (#2856) @iRevive
📦 Dependency updates
- Update sbt-scala-native to 0.5.11 (#2850) @softwaremill-ci
- Update zipkin-sender-okhttp3 to 3.5.3 (#2838) @softwaremill-ci
- Update prometheus-metrics-core to 1.5.1 (#2836) @softwaremill-ci
- Update scalatest-flatspec, ... to 3.2.20 (#2841) @softwaremill-ci
- Update otel4s-sdk-metrics-testkit, ... to 0.18.0 (#2858) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.9.0 (#2859) @softwaremill-ci
- Update otel4s-core-metrics, ... to 0.16.0 (#2857) @softwaremill-ci
- Update http4s-client, http4s-ember-client to 0.23.34 (#2855) @softwaremill-ci
- + 8 more
📋 What's Changed
- Add CurlZioBackend implementation for ZIO on Scala Native (#2843) @rolang
📋 What's Changed
- Add url.template attribute to otel4s-metrics-backend (#2840) @remimomprive
📦 Dependency updates
- Update sbt, scripted-plugin to 1.12.6 (#2834) @softwaremill-ci
- Update resilience4j-circuitbreaker to 2.4.0 (#2832) @softwaremill-ci
- Update fs2-core, fs2-io, ... to 3.13.0 (#2831) @softwaremill-ci
- Update jedis to 7.4.0 (#2830) @softwaremill-ci
- Update armeria to 1.37.0 (#2829) @softwaremill-ci
- Update zio-opentelemetry to 3.1.15 (#2828) @softwaremill-ci
- Update otel4s-core-metrics, ... to 0.15.2 (#2824) @softwaremill-ci
- Update cats-effect, cats-effect-kernel, ... to 3.7.0 (#2827) @softwaremill-ci
- + 7 more
📋 What's Changed
- Remove url.full from default OpenTelemetry metrics attributes (#2815) @adamw
- Update scalafmt-core to 3.10.7 (#2799) @softwaremill-ci
📦 Dependency updates
- Update jedis to 7.3.0 (#2814) @softwaremill-ci
- Update sbt-mima-plugin to 1.1.5 (#2813) @softwaremill-ci
- Update client4:caching-backend, ... to 4.0.18 (#2811) @softwaremill-ci
- Update logback-classic to 1.5.32 (#2810) @softwaremill-ci
📋 What's Changed
- Addressing zio-json release review comments (#2809) @mijicd
- Fix zio-json release process (#2806) @mijicd
- Added streaming support to scala-native curl-based sync backend (#2807) @lbialy
📋 What's Changed
- Upgrade zio json (#2804) @mijicd
- Update scalafmt-core to 3.10.6 (#2787) @softwaremill-ci
📦 Dependency updates
- Update sbt, scripted-plugin to 1.12.3 (#2803) @softwaremill-ci
- Update logback-classic to 1.5.31 (#2801) @softwaremill-ci
- Update prometheus-metrics-core to 1.5.0 (#2800) @softwaremill-ci
- Update logback-classic to 1.5.29 (#2798) @softwaremill-ci
- Update otel4s-sdk-metrics-testkit, ... to 0.16.1 (#2797) @softwaremill-ci
- Update otel4s-core-metrics, ... to 0.15.1 (#2796) @softwaremill-ci
- Update opentelemetry-exporter-otlp, ... to 1.59.0 (#2795) @softwaremill-ci
- Update opentelemetry-api, ... to 1.59.0 (#2794) @softwaremill-ci
- + 12 more
📋 What's Changed
- Update otel4s to 0.15.0 and otel4s-sdk to 0.16.0 (#2772) @iRevive
- Update scalafmt-core to 3.10.4 (#2771) @softwaremill-ci
📦 Dependency updates
- Update jedis to 7.2.1 (#2769) @softwaremill-ci
- Update logback-classic to 1.5.25 (#2770) @softwaremill-ci
- Update client4:caching-backend, ... to 4.0.14 (#2768) @softwaremill-ci
📋 What's Changed
- Fix OpenTelemetry span kind to CLIENT (#2765) @adamw
- Add Scala tooling to Claude Code workflow (#2766) @adamw
- Add Claude Code GitHub Workflow (#2764) @adamw
- Update scalafmt-core to 3.10.3 (#2749) @softwaremill-ci
- Update scalafmt-core to 3.10.1 (#2712) @softwaremill-ci
- Add FetchFs2Backend (#2726) @alfabetacain
- Update scalafmt-core to 3.9.10 (#2710) @[github-actions[bot]](https://github.com/apps/github-actions)
- Update os-lib to 0.11.6 (#2706) @softwaremill-ci
- + 2 more
📦 Dependency updates
- Update zio-opentelemetry to 3.1.14 (#2763) @softwaremill-ci
- Update opentelemetry-exporter-otlp, ... to 1.58.0 (#2761) @softwaremill-ci
- Update opentelemetry-api, ... to 1.58.0 (#2760) @softwaremill-ci
- Update logback-classic to 1.5.24 (#2758) @softwaremill-ci
- Update sbt-scalajs, scalajs-compiler, ... to 1.20.2 (#2756) @softwaremill-ci
- Update jsoniter-scala-core to 2.38.8 (#2754) @softwaremill-ci
- Update armeria to 1.34.2 (#2753) @softwaremill-ci
- Update zio, zio-streams to 2.1.24 (#2752) @softwaremill-ci
- + 32 more
📋 What’s Changed
- Update otel4s to 0.14.0 (#2701) @iRevive
📦 Dependency updates
- Update upickle to 4.4.0 (#2703) @softwaremill-ci
- Update model:core to 1.7.17 (#2700) @softwaremill-ci
- Update zio, zio-streams to 2.1.22 (#2699) @softwaremill-ci
- Update opentelemetry-api, ... to 1.55.0 (#2694) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.8.0 (#2695) @softwaremill-ci
- Update sbt-scala-native to 0.5.9 (#2693) @softwaremill-ci
- Update play-json to 3.0.6 (#2691) @softwaremill-ci
- Update play-json to 2.10.8 (#2690) @softwaremill-ci
- + 4 more
📋 What’s Changed
- Also call the listener backend when a request is cancelled (#2679) @adamw
- Update opentelemetry-exporter-otlp, ... to 1.54.1 (#2667) @softwaremill-ci
📦 Dependency updates
- Update http4s-client, http4s-ember-client to 0.23.32 (#2676) @softwaremill-ci
- Update pekko-stream to 1.2.1 (#2675) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.2 (#2677) @softwaremill-ci
- Update armeria to 1.33.4 (#2678) @softwaremill-ci
- Update http4s-client, http4s-ember-client to 0.23.31 (#2673) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.38.0 (#2670) @softwaremill-ci
- Update zio-opentelemetry to 3.1.10 (#2668) @softwaremill-ci
- Update opentelemetry-api, ... to 1.54.1 (#2666) @softwaremill-ci
- + 2 more
📋 What’s Changed
- fix(zio-json): set Throwable message in ZioJsonException (#2662) @qhquanghuy
📦 Dependency updates
- Update zio-opentelemetry to 3.1.9 (#2660) @softwaremill-ci
- Update upickle to 4.3.2 (#2659) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.37.10 (#2657) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.37.9 (#2656) @softwaremill-ci
- Update sbt, scripted-plugin to 1.11.6 (#2655) @softwaremill-ci
- Update sbt-scalajs, scalajs-compiler, ... to 1.20.1 (#2654) @softwaremill-ci
- Update opentelemetry-api, ... to 1.54.0 (#2652) @softwaremill-ci
📋 What’s Changed
- Implement CurlCatsBackend (#2648) @majk-p
📦 Dependency updates
- Update fs2-core, fs2-io, ... to 3.12.2 (#2649) @softwaremill-ci
- Update zio, zio-streams to 2.1.21 (#2650) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.37.8 (#2647) @softwaremill-ci
- Update pekko-stream to 1.2.0 (#2646) @softwaremill-ci
- Update upickle to 4.3.0 (#2645) @softwaremill-ci
- Update armeria to 1.33.2 (#2643) @softwaremill-ci
- Update opentelemetry-semconv to 1.37.0 (#2642) @softwaremill-ci
- Update opentelemetry-semconv to 1.36.0 (#2641) @softwaremill-ci
- + 37 more
📋 What’s Changed
- Improvements of ox integration: ws flows, stream handling examples (#2599) @adamw
📦 Dependency updates
- Update otel4s-core-metrics, ... to 0.13.0 (#2598) @softwaremill-ci
- Update opentelemetry-exporter-otlp, ... to 1.51.0 (#2594) @softwaremill-ci
- Update zio-opentelemetry to 3.1.6 (#2597) @softwaremill-ci
- Update zio-json to 0.7.44 (#2596) @softwaremill-ci
- Update jsoniter-scala-core to 2.36.5 (#2595) @softwaremill-ci
- Update opentelemetry-api, ... to 1.51.0 (#2586) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.36.4 (#2589) @softwaremill-ci
- Update sbt, scripted-plugin to 1.11.2 (#2588) @softwaremill-ci
- + 7 more
📦 Dependency updates
- Update zio, zio-streams to 2.1.19 (#2578) @softwaremill-ci
- Update zipkin-sender-okhttp3 to 3.5.1 (#2579) @softwaremill-ci
- Update prometheus-metrics-core to 1.3.8 (#2577) @softwaremill-ci
- Update sbt, scripted-plugin to 1.11.0 (#2576) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.36.2 (#2575) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.36.1 (#2574) @softwaremill-ci
- Update upickle to 4.2.1 (#2573) @softwaremill-ci
- Update pekko-http to 1.2.0 (#2572) @softwaremill-ci
- + 4 more
📋 What’s Changed
- Added support for authenticated proxies to Armeria backend (#2568) @threeseed
📋 What’s Changed
- Update opentelemetry-exporter-otlp, ... to 1.50.0 (#2560) @softwaremill-ci
- Curl backend should set user agent (#2562) @keynmol
📦 Dependency updates
- Update prometheus-metrics-core to 1.3.7 (#2565) @softwaremill-ci
- Update model:core to 1.7.14 (#2564) @softwaremill-ci
📋 What’s Changed
- Update circe-core, circe-generic, ... to 0.14.13 (#2546) @softwaremill-ci
- Use double colon in quickstart dependencies (#2551) @keynmol
- Add missing delegate for ScribeLoggingBackend (#2552) @adamw
📦 Dependency updates
- Update zio-json to 0.7.43 (#2559) @softwaremill-ci
- Update opentelemetry-api, ... to 1.50.0 (#2558) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.35.3 (#2556) @softwaremill-ci
- Update scala3-compiler, scala3-library, ... to 3.3.6 (#2557) @softwaremill-ci
- Update jedis to 6.0.0 (#2554) @softwaremill-ci
- Update tethys-core, tethys-derivation, ... to 0.29.5 (#2553) @softwaremill-ci
- Update client4:caching-backend, ... to 4.0.3 (#2542) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.35.2 (#2549) @softwaremill-ci
- + 6 more
📋 What’s Changed
- Include Scala 3 for http4s CE2 backend (#2539) @EnviousSwan
- Update client4:caching-backend, ... to 4.0.2 (#2534) @softwaremill-ci
📦 Dependency updates
- Update mdoc, sbt-mdoc to 2.7.1 (#2538) @softwaremill-ci
- Update armeria to 1.32.5 (#2537) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.34.1 (#2540) @softwaremill-ci
- Update commons-io to 2.19.0 (#2536) @softwaremill-ci
- Update zio-json to 0.7.42 (#2535) @softwaremill-ci
📋 What’s Changed
- Make the Sec-WebSocket-Protocol websocket header available for responses in HttpClient backend (#2533) @adamw
📋 What’s Changed
- Include Scala 3 for Armeria CE2 backends (#2526) @EnviousSwan
- fix LoggingBackend timing logs configuration (#2527) @Ravenow
- Update jsoniter-scala-macros to 2.33.3 (#2528) @softwaremill-ci
- Add Scala Native build for jsoniter (#2532) @ghostdogpr
- Update client4:caching-backend, ... to 4.0.0 (#2524) @softwaremill-ci
📦 Dependency updates
- Update mdoc, sbt-mdoc to 2.7.0 (#2531) @softwaremill-ci
- Update zio-json to 0.7.40 (#2530) @softwaremill-ci
- Update sbt-softwaremill-browser-test-js, ... to 2.0.22 (#2529) @softwaremill-ci
- Update jsoniter-scala-core to 2.34.0 (#2525) @softwaremill-ci
- Update armeria to 1.32.4 (#2523) @softwaremill-ci
📋 What’s Changed
- Fix resource leak on cancellation (#2477) @Kamil-Lontkowski
📦 Links
- [Documentation, examples](https://sttp.softwaremill.com/en/latest/index.html)
- [Migrating from v3 to v4](https://sttp.softwaremill.com/en/latest/migrate_v3_v4.html)
- [Community forum](https://softwaremill.community/c/sttp-client) - ask migration questions here
- [Issues](https://github.com/softwaremill/sttp/issues) - report bugs, missing examples, migration problems here
✨ New features
- simple use-cases, simple types: most of the time you'll work with `Request[T]`, `SyncBackend` or `Backend[F]`, reducing the number of type parameters involved
- much better error reporting, due to the above simplifications
- better integration with IDE's auto-complete
- clearer types for streaming & WebSocket requests
- `...OrFailed` response descriptions
- client-side, configurable compression support
- deeper metrics & logging integration
- improved OpenTelemetry, Prometheus, Logging backends
- + 5 more
📋 What’s Changed
- OpenTelemetry metrics+tracing example (#2519) @adamw
- Add mapResponseWithMetadata helper method to requests (#2520) @adamw
📦 Dependency updates
- Update client4:caching-backend, ... to 4.0.0-RC3 (#2511) @softwaremill-ci
- Update opentelemetry-backend to 4.0.0-RC4 (#2521) @softwaremill-ci
- Update client4:caching-backend, ... to 4.0.0-RC4 (#2516) @softwaremill-ci
- Update cats-effect, cats-effect-kernel, ... to 3.6.1 (#2522) @softwaremill-ci
- Update zio, zio-streams to 2.1.17 (#2518) @softwaremill-ci
- Update opentelemetry-api, ... to 1.49.0 (#2517) @softwaremill-ci
📋 What’s Changed
- Fix multi-files multipart requests for streaming backends (#2515) @adamw
- github actions refactor (#2458) @Blef666
📦 Dependency updates
- Update opentelemetry-semconv to 1.32.0 (#2514) @softwaremill-ci
- Update opentelemetry-semconv to 1.31.0 (#2513) @softwaremill-ci
- Update zio-opentelemetry to 3.1.3 (#2512) @softwaremill-ci
📋 What’s Changed
- When using asFail responses, properly handle redirects (#2510) @adamw
- Add an encodeUriAll option in FollowRedirectsBackend (#2509) @adamw
- Add otel4s OpenTelemetry backend (#2445) @iRevive
- Update client4:caching-backend, ... to 4.0.0-RC2 (#2498) @softwaremill-ci
- Change quickRequest to always read the response body as a string, instead of throwing an exception on http errors (#2507) @adamw
- Hide sensitive information in URL query params (#2500) @aartigao
- Update circe-core, circe-generic, ... to 0.14.12 (#2488) @softwaremill-ci
- Update cats-effect to 3.6.0 (#2504) @iRevive
📦 Dependency updates
- Update model:core to 1.7.13 (#2502) @softwaremill-ci
- Update fs2-core, fs2-io, ... to 3.12.0 (#2501) @softwaremill-ci
📋 What’s Changed
- Make some internal classes package-private in sttp4 (#2496) @adamw
- Update logback-classic to 1.5.18 (#2492) @softwaremill-ci
- Update to sttp shared 1.5.0 (#2495) @adamw
- Make OpenTelemetryTracingBackend generic - working for any effect (#2494) @adamw
- Update scalafmt-core to 3.9.4 (#2485) @softwaremill-ci
- Support multipart streaming bodies in HttpClient based backends (#2466) @Kamil-Lontkowski
- Update scalafmt-core to 3.9.2 (#2471) @softwaremill-ci
- Update logback-classic to 1.5.17 (#2464) @softwaremill-ci
- + 4 more
📦 Dependency updates
- Update jsoniter-scala-core, ... to 2.33.3 (#2493) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.6.5 (#2491) @softwaremill-ci
- Update sbt, scripted-plugin to 1.10.11 (#2490) @softwaremill-ci
- Update armeria to 1.32.3 (#2489) @softwaremill-ci
- Update model:core to 1.7.12 (#2484) @softwaremill-ci
- Update armeria to 1.32.2 (#2487) @softwaremill-ci
- Update armeria to 1.32.1 (#2486) @softwaremill-ci
- Update opentelemetry-api, ... to 1.48.0 (#2483) @softwaremill-ci
- + 29 more
📦 Links
- [Documentation, examples](https://sttp.softwaremill.com/en/latest/index.html)
- [Migrating from v3 to v4](https://sttp.softwaremill.com/en/latest/migrate_v3_v4.html)
- [Community forum](https://softwaremill.community/c/sttp-client) - ask migration questions here
- [Issues](https://github.com/softwaremill/sttp/issues) - report bugs, migration problems here
✨ New features
- simple use-cases, simple types: most of the time you'll work with `Request[T]`, `SyncBackend` or `Backend[F]`, reducing the number of type parameters involved
- much better error reporting, due to the above simplifications
- better integration with IDE's auto-complete
- clearer types for streaming & WebSocket requests
- `...OrFailed` response descriptions
- client-side, configurable compression support
- deeper metrics & logging integration
- improved OpenTelemetry, Prometheus, Logging backends
- + 5 more
📋 What’s Changed
- Update client4:caching-backend, ... to 4.0.0-M26 (#2437) @softwaremill-ci
📦 Dependency updates
- Update zio-json to 0.7.15 (#2439) @softwaremill-ci
- Update zio, zio-streams to 2.1.15 (#2438) @softwaremill-ci
📋 What’s Changed
- Allow more precise definition of response body handling in stubs (#2436) @adamw
- Add onBodyReceived callback, use in logs & metrics (#2427) @adamw
- Update client4:cats, client4:circe, ... to 4.0.0-M25 (#2419) @softwaremill-ci
📦 Dependency updates
- Update zio-json to 0.7.14 (#2433) @softwaremill-ci
- Update mdoc, sbt-mdoc to 2.6.3 (#2431) @softwaremill-ci
- Update zio-json to 0.7.13 (#2430) @softwaremill-ci
- Update zio-json to 0.7.12 (#2429) @softwaremill-ci
- Update zio-json to 0.7.11 (#2428) @softwaremill-ci
- Update zio-json to 0.7.10 (#2426) @softwaremill-ci
- Update scala3-compiler, scala3-library, ... to 3.3.5 (#2425) @softwaremill-ci
- Update jsoniter-scala-core, ... to 2.33.1 (#2423) @softwaremill-ci
- + 4 more
