Comparing Akka HTTP to Spray
Before Akka HTTP came about, the most popular choice for a HTTP framework to use with Akka was Spray. The Akka team liked what they saw with Spray, so they decided to collaborate with the Spray team to create a new back-pressure aware I/O layer for Akka. This collaboration went so well that the Akka team decided to go all in on an internal HTTP framework which would be based on Spray. Development was to stop in Spray and continue in Akka HTTP. Developers could still use Spray, but any new features and enhancements would only be available within Akka HTTP.
So Akka HTTP has its roots in Spray, and for the most part the APIs for inbound and outbound HTTP are the same across the two libraries. This means that it's pretty easy to migrate from Spray to Akka HTTP. There are some key differences though, things that you should be aware of when making the switch from Akka HTTP to Spray. I'll do my best to highlight the most important differences between the two frameworks...