Skip to content
This repository

A lightweight Web 3.0 framework for Scala, featuring a purely asynchronous architecture, extremely high-performance, massive scalability, high usability, and a functional, composable design.

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

NOTE

BlueEyes 1.0 development is currently underway in the master branch. If you wish to use the current stable version of BlueEyes, please use the 0.6x branch.

While many features will be retained, BlueEyes 1.0 is not expected to be backward compatible -- some reworking will be required.

BlueEyes

BlueEyes is a lightweight, asynchronous web framework for the Scala programming language. The framework lets you quickly and easily create high-performing web services that embrace the machinery and language of HTTP. The framework tries to get out of your way and let you concentrate on logic instead of boilerplate.

BlueEyes has been used in production across large clusters of instances deployed in Amazon EC2, reliably handling tens of thousands of requests a second, in an environment with 24x7 uptime requirements (online display advertising).

The framework has been designed to meet the following requirements:

  • Stateless design, to achieve massive scalability;
  • Purely asynchronous request handling, to achieve extremely fast per-instance performance;
  • Highly composable, modular design that minimizes bloat and surface area of the API;
  • Declarative service construction;
  • Support for continuous deployment and automated testing;
  • Idiomatic Scala interfaces to highly-scalable databases such as MongoDB.

BlueEyes does not have any features for server-side generation of HTML, CSS, or JavaScript. BlueEyes does not (natively) serve static files, like Apache or Jetty. BlueEyes is intended only for creating RESTful web services that are consumed by clients (such as browsers or servers).

Those looking for a traditional model/view web framework for the Scala programming language are directed to the Lift Web Framework.

Mailing List

If you have bugs to report, please use the GitHub issues tracker. If you have questions about BlueEyes, you are invited to join the BlueEyes Web Framework discussion group:

Book (in-progress)

For more extensive documentation on BlueEyes, see the in-progress book

Maven

Repositories:

Library dependency:

<dependency>
  <groupId>com.github.jdegoes</groupId>
  <artifactId>blueeyes-core</artifactId>
  <version>0.6.0</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

Also consider blueeyes-mongo and blueeyes-json artifacts.

SBT

resolvers ++= Seq(
  "Sonatype" at "http://oss.sonatype.org/content/repositories/public",
  "Typesafe" at "http://repo.typesafe.com/typesafe/releases/"
)

libraryDependencies ++= Seq(
  "com.github.jdegoes" %% "blueeyes-core"  % "0.6.0",
  "com.github.jdegoes" %% "blueeyes-mongo" % "0.6.0",
  "com.github.jdegoes" %% "blueeyes-json"  % "0.6.0",
  "ch.qos.logback" % "logback-classic" % "1.0.0" % "runtime"
)

Origins

BlueEyes is loosely inspired by the Ruby library Sinatra and the Scala library Scalatra. These lightweight libraries allow developers to easily create RESTful services without the feature bloat and poor usability common to most web frameworks.

BlueEyes aims for the same or higher level of productivity as these libraries, but with a more functional design, much higher performance, and compatibility with the rigorous demands of continuous deployment.

Team

Name Role Twitter
John A. De Goes Author & architect, core platform @jdegoes
Kris Nuttycome Core platform @nuttycom
Michael Lagutko Core platform, persistence @mlagutko
Jeff Simpson Asynchronous HTTP client @fooblahblah
Noel Welsh General fixes, documentation, community building @noelwelsh

Development

To release

  • Login at oss.sonatype.org
  • Run the publish command for core, json, and mongo

License

Copyright (c) 2010-2013

Published under The MIT License

Sponsors

A big round of thanks to the sponsors of BlueEyes.

JProfiler - Best-in-class profiler for Java and Scala developers

Something went wrong with that request. Please try again.