implicit.ly

Scala software, hot off the presses

twirl 0.5.2

This is a maintenance release. There is only one change since the last release:

  • Improved logging to only show info level message on actual template recompilation

Twirl is the Play Framework Scala template engine, repackaged for stand-alone use. This project provides an SBT plugin that lets you use Twirl in your Scala applications without any additional dependencies on the Play Framework.

The Scala template engine provided by Play 2.0 enables type-safe templating that integrates seamlessly into your Scala applications. Templates are text files containing a mix of "markup" and Scala code. At compile time the Twirl compiler translates them into actual Scala source files, which are then picked up by the Scala compiler and compiled together with the rest of your application sources into regular .class files. On a type level each template is just a function from a number of (strongly typed) input values to a result object.

The Twirl SBT plugin smoothly integrates templating support into your Scala builds. It supports triggered compilation (via SBTs ~ operator) as well as hot reloading via sbt-revolver.

Filed under  //   Scala 2.9.1   cc.spray   twirl  
Posted March 14, 2012 by sirthias 

spray-json 1.1.1

This is a maintenance release introducing the following changes:

  • Fixed significant performance problem in JsonParser
  • Improved automatic field name extraction for case classes

spray-json is a lightweight, clean and efficient JSON implementation in Scala.

It sports the following features:

  • Simple immutable model of the JSON language elements
  • An efficient JSON PEG parser (implemented with parboiled)
  • Choice of either compact or pretty JSON-to-string printing
  • Type-class based (de)serialization of custom objects (no reflection, no intrusion)

Filed under  //   Scala 2.9.1   cc.spray   spray-json  
Posted March 13, 2012 by sirthias 

spray -0.9.0

The spray team is proudly announcing the availability of the release 0.9.0 of the spray suite. A lot of work went into this latest incarnation of tools to make building RESTful web services with Scala and Akka even more productive and fun.

Note that this will be the last "major" release for Akka 1.x.

Changes since spray 0.8.0:

  • Upgrades: Scala 2.9.1, Akka 1.3.1, spray-json 1.1.0, spray-can 0.9.3, SBT 0.11.2
  • Changed dependency on akka-actor from scope 'compile' to scope 'provided'
  • Added support for chunked responses, including chunk compression and automatic file chunking
  • Added new directives: autoChunk, clientIP, completeWith, cookie, deleteCookie, dynamic, headerValue, headerValuePF, optionalCookie, provide, redirect, reject, setCookie, transformChunkedResponse, transformRejections, transformUnchunkedResponse
  • Added default Marshallers for Option, Either, HttpResult, HttpException, Stream, Future and Array[Byte]
  • Added support for JSON (de)serialization via lift-json
  • Added support for template rendering via Scalate
  • Added support for LDAP authentication
  • Added support for asynchronous and cached authentication
  • Added option for relaxed header parsing (issue #68)
  • Added DebuggingDirectives trait
  • Added TwirlSupport trait
  • Made FilterResult and SprayRoute1 monadic
  • Simplified custom rendering of Rejections to HttpResponses
  • Improved LruCache implementation to use com.googlecode.concurrentlinkedhashmap
  • Fixed #72 (spray-client: different HttpConduits sometimes and erroneously share connections)
  • Fixed #78 (spray-client: unexpected closing of connection not properly handled)
  • Fixed #59 (Factor out Rejection Conversion)
  • Fixed #67 ('cacheResults' directive should honor 'Cache-Control: no-cache/max-age' request header)
  • Fixed getFromResource directive to not serve "content" of resources ending with slash
  • Fixed most occurrences of implicit ambiguities with SprayJsonSupport
  • Fixed incorrect response status code for authentication failures with invalid credentials
  • Fixed several bugs in header parsing and rendering
  • Extended spray-example-spray-can to show off new streaming features
  • Lots of other fixes, additions and improvements

spray is a suite of lightweight Scala libraries for building and consuming RESTful web services on top of Akka.

Filed under  //   Scala 2.9.1   cc.spray   spray  
Posted March 9, 2012 by sirthias 

spray-can 0.9.3

This release fixes a problem that can cause AssertionErrors and/or NPEs when using the spray-can HttpClient with pipelined request dispatching.

spray-can is a low-overhead, high-performance, fully asynchronous HTTP 1.1 server and client library implemented entirely in Scala on top of Akka.

Both, the spray-can server and the spray-can client, sport the following features:

  • Low per-connection overhead for supporting thousands of concurrent connections
  • Efficient message parsing and processing logic for high throughput applications (> 50K requests/sec on ordinary consumer hardware)
  • Full support for HTTP/1.1 persistant connections
  • Full support for message pipelining
  • Full support for asynchronous HTTP streaming (i.e. "chunked" transfer encoding)
  • Akka-Actor and -Future based architecture for easy integration into your Akka applications
  • No dependencies except for JavaSE 6, Scala 2.9 and Akka (actors module).

Filed under  //   Scala 2.9.1   cc.spray   spray-can  
Posted March 5, 2012 by sirthias 

twirl 0.5.1

This is primarily a maintenance release.

  • Added support for specification of custom twirl source codec (default: UTF-8)
  • Fixed incorrect dependency on twirl-api SNAPSHOT
  • Upgraded to scala-io 0.3.0
  • Smaller cosmetic improvements

Twirl is the Play Framework Scala template engine, repackaged for stand-alone use. This project provides an SBT plugin that lets you use Twirl in your Scala applications without any additional dependencies on the Play Framework.

The Scala template engine provided by Play 2.0 enables type-safe templating that integrates seamlessly into your Scala applications. Templates are text files containing a mix of "markup" and Scala code. At compile time the Twirl compiler translates them into actual Scala source files, which are then picked up by the Scala compiler and compiled together with the rest of your application sources into regular .class files. On a type level each template is just a function from a number of (strongly typed) input values to a result object.

The Twirl SBT plugin smoothly integrates templating support into your Scala builds. It supports triggered compilation (via SBTs ~ operator) as well as hot reloading via sbt-revolver.

Filed under  //   Scala 2.9.1   cc.spray   twirl  

twirl 0.5.0

Twirl is the Play Framework Scala template engine, repackaged for stand-alone use. This project provides an SBT plugin that lets you use Twirl in your Scala applications without any additional dependencies on the Play Framework.

This is the first release.

The Scala template engine provided by Play 2.0 enables type-safe templating that integrates seamlessly into your Scala applications. Templates are text files containing a mix of "markup" and Scala code. At compile time the Twirl compiler translates them into actual Scala source files, which are then picked up by the Scala compiler and compiled together with the rest of your application sources into regular .class files. On a type level each template is just a function from a number of (strongly typed) input values to a result object.

The Twirl SBT plugin smoothly integrates templating support into your Scala builds. It supports triggered compilation (via SBTs ~ operator) as well as hot reloading via sbt-revolver.

Filed under  //   Scala 2.9.1   cc.spray   twirl  

sbt-revolver 0.6.0

This second release addresses a few problems:

  • Renamed re:start, re:stop and re:status tasks to re-start, re-stop and re-status respectively for more key "uniqueness" (i.e. decreased likelyhood of key-name collisions)
  • Added option for configuring mainClass independently for re-start task
  • Fixed #3 (Not working if there are multiple main classes)
  • Closed #5 (Add option to specify CLI args for the forked JVM)
  • Improved documentation

sbt-revolver is an SBT plugin for dangerously fast development turnaround in Scala.

It sports the following features:

  • Starting and stopping your application in the background of your interactive SBT shell (in a forked JVM)
  • Triggered restart: automatically restart your application as soon as some of its sources have been changed
  • Hot reloading: automatically reload the respective classes into your running application as soon as some of its sources have been changed, no restart necessary (requires JRebel, which is free for Scala development)

Filed under  //   Scala 2.9.1   cc.spray   sbt-revolver  

spray-can 0.9.2

Starting with this release spray-can artifacts live on http://repo.spray.cc/ and will have group id cc.spray rather than cc.spray.can as before.

This is a primarily a maintenance release:

  • Upgraded to Akka 1.3 and SLF4J 1.6.4
  • Improved HttpServer response streaming API
  • Fixed #8 (Extend HttpDialog to allow for sending Seq[HttpRequest])
  • Fixed #11 (Improved message parser error messages)
  • Fixed #15 (Change header parsing to always extract header names in lower case)
  • Fixed #20 (HttpClient: crash on java.nio.channels.UnresolvedAddressException)
  • Fixed #21 (DefaultReceiverActor sometimes produces HttpResponses with body = null)
  • Fixed IllegalArgumentException in HttpClient upon timing out of a pipelined request
  • Fixed two memory leaks in HttpClient
  • Added GoogleQueryExample to Client-Example
  • Changed dependency on akka-actor from 'compile' to 'provided' scope
  • Smaller cleanups

spray-can is a low-overhead, high-performance, fully asynchronous HTTP 1.1 server and client library implemented entirely in Scala on top of Akka.

Both, the spray-can server and the spray-can client, sport the following features:

  • Low per-connection overhead for supporting thousands of concurrent connections
  • Efficient message parsing and processing logic for high throughput applications (> 50K requests/sec on ordinary consumer hardware)
  • Full support for HTTP/1.1 persistant connections
  • Full support for message pipelining
  • Full support for asynchronous HTTP streaming (i.e. "chunked" transfer encoding)
  • Akka-Actor and -Future based architecture for easy integration into your Akka applications
  • No dependencies except for JavaSE 6, Scala 2.9 and Akka (actors module).

Filed under  //   Scala 2.9.1   cc.spray   spray-can  

spray-json 1.1.0

Starting with this release spray-json artifacts live on http://repo.spray.cc/ and will have group id cc.spray rather than cc.spray.json as before.

Changes since the last release (1.0.1):

  • Added automatic case class field name extraction via new jsonFormatX overloads
  • Added asJson pimp to Strings
  • Added RootJsonFormat (JsonFormat for types corresponding to JSON document roots)
  • Fixed problem of JSON object deserialization not being member-order independent (removed JsField, turned JsObject(List[JsField]) into JsObject(Map[String, JsValue]))
  • Fixed issue #8 (Allow (de)serialization of NaN (Double)), thx to @stefritz
  • Fixed #6 (rename JsValue:fromJson to convertTo, add .prettyPrint and .compactPrint)
  • Improved deserialization error messages
  • Upgraded to SBT 0.11.2

spray-json is a lightweight, clean and efficient JSON implementation in Scala.

It sports the following features:

  • Simple immutable model of the JSON language elements
  • An efficient JSON PEG parser (implemented with parboiled)
  • Choice of either compact or pretty JSON-to-string printing
  • Type-class based (de)serialization of custom objects (no reflection, no intrusion)

Filed under  //   Scala 2.9.1   cc.spray   spray-json  

sbt-revolver 0.5.0

sbt-revolver is an SBT plugin for dangerously fast development turnaround in Scala.

It sports the following features:

  • Starting and stopping your application in the background of your interactive SBT shell (in a forked JVM)
  • Triggered restart: automatically restart your application as soon as some of its sources have been changed
  • Hot reloading: automatically reload the respective classes into your running application as soon as some of its sources have been changed, no restart necessary (requires JRebel, which is free for Scala development)

sbt-revolver is an SBT plugin for dangerously fast development turnaround in Scala.

Filed under  //   Scala 2.9.1   cc.spray   sbt-revolver