Find file
Fetching contributors…
Cannot retrieve contributors at this time
133 lines (86 sloc) 2.7 KB

Scamper is a collection of RESTful libraries and frameworks, organized as a testbed for comparing the raw performance characteristics of each.

Each implementation exposes the same three endpoints:

  • GET /fast blocks for 0 ms
  • GET /medium blocks for 150 ms
  • GET /slow blocks for 300 ms

Each endpoint responds with <h1>slept for { duration } ms</h1>, where duration is the actual amount of time spent blocking.

Each implementation runs on localhost:9000 and can be tested with a variety of tools, such as weighttp or JMeter.

Test results

For full test results, see the Wiki.

Fast Test

Getting started

Download scamper

git clone git://

Install JMeter

Install Node.js

brew install nodejs
npm install -g express
(cd scamper/node.js ; npm link express)

Install sbt (0.12.0 or newer)

Run and test each implementation

Each server can be tested with JMeter or weighttp:

jmeter -n -t scamper/load-test.jmx
jmeter -n -t scamper/fast-test.jmx
weighttp -n 500000 -c 20 -t 4 -k http://localhost:9000/fast


(cd scamper/blueeyes ; sbt "run --configFile blueeyes.config")


(cd scamper/finagle ; sbt run)


(cd scamper/lift ; sbt run)


(cd scamper/pinky ; sbt update run)

Play 2.0

(cd scamper/play2 ; sbt start)

Play 2.0 mini

(cd scamper/play2-mini ; sbt run)


(cd scamper/spray ; sbt "project simple-http-server" run)

Servlet 3.0

(cd scamper/servlet-3.0 ; sbt run)

Asynchronous Servlet 3.0

(cd scamper/servlet-3.0-async ; sbt run)


(cd scamper/scalatra ; sbt run)


(ulimit -n 4096 ; cd scamper/node.js ; node app.js)


(cd scamper/finatra ; sbt run)


(cd scamper/rubble ; sbt run)