Typesafe: Spray.io Acquisition Will Promote 'Reactive' Applications on JVM
Typesafe, the chief commercial backer of the open source Scala project, expects its recent acquisition of Spray.io, a suite of lightweight Scala libraries that provide client- and server-side REST/HTTP support on top of Akka, to broaden the appeal of the Typesafe Platform to Java developers with "one of the best performing REST/HTTP libraries in the Java ecosystem."
"Our customers were telling us that they wanted to layer a simple REST API on top of their existing Akka and Scala applications," Jonas Boner, CTO and co-founder of Typesafe, told ADTmag. "The Akka IO library was a joint effort between the Akka and Spray teams, so this was really a perfect fit for us."
Spray.io is an open source toolkit for building REST/HTTP-based integration layers on top of Scala and Akka. It comes with a small embedded HTTP server, a high-level routing DSL module defining RESTful Web services, and out-of-the-box support for all Servlet 3.0 compatible servlet containers, such as Jetty, Tomcat and Glassfish. Spray's lead developer, Mathias Doenitz, called Typesafe "the ideal long-term home for Spray."
Akka is Typesafe's asynchronous, event-driven middleware implemented in Scala. Scala, which was developed by Typesafe co-founder Martin Odersky, is a general purpose, multi-paradigm language designed to integrate features of object-oriented programming and functional programming. Scala runs on the Java Virtual Machine (JVM) and is compatible with existing Java programs. The company is also responsible for the Play Web app framework, a full development and runtime environment billed as "a clean alternative to legacy Enterprise Java stacks," which compiles Java and Scala sources directly and "hot reloads" them into the JVM (a.k.a., no need to restart the server).
While Play is a full runtime environment, Spray is meant to be used as an embeddable library. Together they provide developers for both "minimalistic, embedded REST services" and "a complete development experience," the company says. Typesafe plans to add Java APIs to the Spray integration, as well as a new HTTP runtime, which will become the basis of the Play framework.
All of these tools are part of the Typesafe Reactive Platform, which supports the development of so-called "reactive" applications on the JVM.
Conceptualized in the recently published "Reactive Manifesto," reactive applications are apps that better meet the "contemporary challenges of software development," in a world in which applications are deployed to everything from mobile devices to cloud-based clusters running thousands of multicore processors. The manifesto defines the four "critical traits" of reactive apps: event-driven, scalable, resilient, and responsive. By embracing these traits, developers produce apps that are highly responsive to user experiences, provide a real-time feel, and are backed by a "scalable and resilient application stack" that can be deployed just about anywhere.
"We needed a way to explain what we're talking about that wasn't full of geeky buzzwords and ended up just being confusing," Boner said. "The manifesto distills things down to the essence of these new applications, which are being built right now, and provided a vocabulary that would allow developers to talk about these things."