XML Streaming for Scala
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


xs4s Maven Central Build Status Join the chat at https://gitter.im/ScalaWilliam/xs4s

XML Streaming for Scala

This library shows how to use Scala to process XML streams.

Scala's scalability makes it easy to do XML stream processing with StAX.

Using the library

Add the following to your build.sbt:

scalaVersion := "2.12.3"

libraryDependencies += "com.scalawilliam" %% "xs4s" % "0.4"

// optionally, if you want to use a snapshot build.
// resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"


  • ComputeBritainsRegionalMinimumParkingCosts
  • FindMostPopularWikipediaKeywords
  • Question12OfXTSpeedoXmarkTests

Running the examples

$ git clone https://github.com/ScalaWilliam/xs4s.git

$ sbt examples/run

The code is lightweight, with ElementBuilder being the heaviest code as it converts StAX events into Scala XML classes.

This can consume 100MB files or 4GB files without any problems. And it does it fast. It converts XML streams into Scala XML trees on demand, which you can then query from.


$ cat <<EOF > ~/.sbt/0.13/sonatype.sbt
credentials +=
  Credentials("Sonatype Nexus Repository Manager",

$ sbt +core/publishSigned

Then in https://oss.sonatype.org/ log in, go to 'Staging Repositories', sort by date descending, select the latest package, click 'Close' and then 'Release'.

ScalaWilliam https://www.scalawilliam.com/