But what is sttp, you might wonder? It’s an open-source library, which provides a clean, programmer-friendly API to define HTTP requests and execute them using one of the wrapped backends, such as akka-http, async-http-client or OkHttp.

To get a quick taste of sttp, here’s a short example:

Together with the 1.0 release, there’s now extensive documentation available explaining all the core concepts, if you would have doubts on how specific functionality works.

The best way to try sttp is to test it yourself (either through Ammonite, or via sbt — the core module doesn’t have any tranisitive depedencies), but to summarize the main features:

simple, discoverable, type-safe API for defining immutable request descriptions

for defining request descriptions separation of request definition and execution

of request definition and execution support for both synchronous and asynchronous through multiple backends

through multiple backends URI interpolator , to safely and conveniently build endpoint addresses with embedded values and Option support

, to safely and conveniently build endpoint addresses with embedded values and support support for backend-specific request/response body streaming

straightforward integration with logging/metric libraries through backend wrappers

Throughout the many 0.0.x versions, the API changed in response to user feedback; especially thanks to Tomasz Szymański, Omar Alejandro Mainegra Sarduy, Bjørn Madsen, Piotr Buda and Piotr Gabara for their contributions.

That’s of course just a milestone in the project’s development. I think there are still a lot of interesting features to add, especially in terms of integrations through various backends and backend wrappers.

Check the project out on GitHub, star if you like it; and if you have any suggestions: we’re waiting on the gitter channel or on github issues.

photo by Clint Adair