spray-json future is not clear as spray is going to become akka-http and the spray team is still deciding the future of spray-json... it may stay or it may be combined with play-json to create a better library.
spray-json only relies on parboiled, a library mantained by the spray-team itself. Right now it's performance is much worse than lift-json ( http://engineering.ooyala.com/blog/comparing-scala-json-libraries) but that would change when they finished parboiled2. And alternative could be argonaut.io but you would bring scalaz as a dependency. lift-json is a nice library, but Lift is a pretty heavyweight dependency to track just for its JSON support. (lift-json is relatively self-contained as a dependency from an end-user's perspective, but downstream distributors need to build all of Lift in order to package the JSON support.) I understand that this has come up before (cf. SPARK-883) and that the uncertain future of JSON support in the Scala standard library is the motivator for relying on an external library. I'm proposing replacing lift-json in Spark with something more lightweight. I've evaluated apparent project liveness and dependency scope for most of the current Scala JSON libraries and believe the best candidate is spray-json (https://github.com/spray/spray-json), the JSON library used by the Spray HTTP toolkit. spray-json is Apache-licensed, actively developed, and builds and works independently of Spray with only one external dependency. It looks to me like a pretty straightforward change (although JsonProtocol.scala would be a little more verbose since it couldn't use the Lift JSON DSL), and I'd like to do it. I'm writing now to ask for some community feedback before making the change (and submitting a JIRA and PR). If no one has any serious objections (to the effort in general or to to the choice of spark-json in particular), I'll go ahead and do it, but if anyone has concerns, I'd be happy to discuss and address them before getting started. thanks, wb