All Versions
Latest Version
Avg Release Cycle
79 days
Latest Release
2237 days ago

Changelog History
Page 3

  • v1.0-M4 Changes

    October 19, 2012
    • โฌ†๏ธ Upgraded to parboiled 1.1.3 and spray-json 1.2.2
    • routing: further flexibilized directive combination with StandardRoutes
    • routing: (re)added 'complete' overload taking a Future[HttpResponse], closes #143
    • routing: added new directives:

      • unmatchedPath
      • listDirectoryContents
      • getFromBrowseableDirectory / getFromBrowseableDirectories
    • ๐Ÿ›  smaller fixes and improvements

  • v1.0-M3 Changes

    October 12, 2012

    โ™ป๏ธ Largest refactoring in the history of the project. Lots of breaking changes. Most importantly:

    • ๐Ÿ“š Completely new documentation at
    • ๐Ÿ“‡ Renamed group id from "cc.spray" to "io.spray"
    • ๐Ÿ“ฆ Renamed packages from "cc.spray..." to simply "spray..."
    • โ™ป๏ธ Completely refactored suite module structure (from 4 to 10+1 modules)
    • ๐Ÿ‘Œ Improved naming of many identifiers across the board
    • Completely new architecture underneath routing DSL
    • Completely new Marshalling and Unmarshalling infrastructure
    • ...
  • v1.0-M2 Changes

    May 16, 2012
    • spray-io

      • Added SslTlsSupport pipeline stage
      • Fixed SetTimeout messages not working
      • Fixed closing of already closed connections improperly handled
      • Fixed bug in wiring of certain pipeline stages
      • Dropped 'confirm-sends' config setting, added 'ack:Boolean' field to IoWorker.Send
      • Renamed 'SendCompleted' event to 'AckSend'
      • Made IoWorkerThread daemonic
      • Improved pipeline architecture for reduced call stack depth
    • spray-can

      • Added SSL/TLS support to HttpServer and HttpClient
      • Added 'ack-sends' setting to client and server config
      • Added 'transparent-head-requests' server config setting
      • Added HttpClient.SetRequestTimeout message
      • Fixed HttpServer not handling 'Expect: 100-continue' headers
      • Fixed HttpClient not properly handling HEAD requests to resources containing a message body
      • Fixed #99 (getFromFile(Name) sometimes throws IllegalStateException when streaming file content)
      • Fixed SetTimeout messages not working
      • Enabled validity verification on HttpRequests and HttpResponses
      • Extended HttpDialog to also accept ActorContexts as dispatcher container
    • spray-base

      • http: fixed custom mediatypes not being matched
      • http: fixed ArrayIndexOutOfBoundsException during header parsing of unregistered CustomMediaTypes
      • http: fixed IPv6 Host header parsing failure
      • Fixed #108 (FormDataUnmarshaller should be more resilient)
      • Fixed incorrect error message in HttpContentExtractor
      • Fixed several memory leaks in streamMarshaller
    • spray-server

      • Fixed actorSystem dependency in DebuggingDirectives incorrectly named
      • Make ErrorHandling#responseForException public
    • spray-client

      • Improve 'unmarshal' pipeline step to accept all 2xx responses instead of only 200
    • general

      • Added basic, but still incomplete, sphinx-based documentation system for new spray website
      • Upgraded to Akka 2.0.1
      • Extended simple-http-server and simple-http-client examples with optional SSL/TLS support
      • Fixed EOL related test failures on Windows
      • Lots of smaller fixes and improvements
  • v1.0-M1 Changes

    April 05, 2012
    • ๐Ÿšš Moved spray-can sources into spray codebase
    • โž• Added spray-io component (and spray-util for common code)
    • โฌ†๏ธ Upgraded all components and examples to Akka 2.0
  • v0.9.0 Changes

    March 07, 2012
    • ๐Ÿ›  Fixed another problem in the request retry logic (spray-client)
    • ๐Ÿ›  Fixed incorrect response status code for authentication failures with invalid credentials
    • ๐Ÿ›  Fixed "LruCache implementations also caching exceptions"
    • Readded time-to-live based expiration to ExpiringLruCache
    • ๐Ÿ‘ป Closed #87 (wrap non-200 responses in special exception)
    • Closed #88 (added PathElement PathMatcher)
  • v0.9.0-RC4 Changes

    February 27, 2012
    • ๐Ÿ›  Fixed spray-client retries not always honoring Pipelined dispatch strategy
    • โž• Added missing location pointer to entity of generated redirection responses
    • โž• Added directives: reject, cookie, optionalCookie, setCookie, deleteCookie, headerValue, headerValuePF, clientIP, provide and transformRejections
    • Made FilterResult and SprayRoute1 monadic
    • โž• Added another overload to the 'authenticate' directive
    • โž• Added 'toOption' pimp to Strings (in utils)
  • v0.9.0-RC3 Changes

    February 22, 2012
    • ๐Ÿ›  Fixed #78 (spray-client: unexpected closing of connection not properly handled)
  • v0.9.0-RC2 Changes

    February 17, 2012
    • โฌ†๏ธ Upgrade to Akka 1.3.1
    • ๐Ÿ›  Fixed getFromResource directive to not serve "content" of resources ending with slash
    • Made cacheResults directive honor 'Cache-Control: max-age' header
    • โž• Added default Marshaller for OptionT
    • โž• Added TwirlSupport trait
    • ๐Ÿ‘Œ Improved DebuggingDirectives trait, added logRequestResponse directive
    • ๐Ÿ‘Œ Improved relaxed header parsing to also accept custom HttpCharsets
  • v0.9.0-RC1 Changes

    February 03, 2012
    • โฌ†๏ธ Upgrades:

      • Scala 2.9.1
      • Akka 1.3
      • spray-json 1.1.0
      • spray-can 0.9.2
      • 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: completeWith, redirect, autoChunk, dynamic, transformUnchunkedResponse, transformChunkedResponse

    • โž• Added default Marshallers for Eithers, HttpResults, HttpExceptions, Streams, Futures 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

    • Simplified custom rendering of Rejections to HttpResponses

    • ๐Ÿ‘Œ Improved LruCache implementation to use com.googlecode.concurrentlinkedhashmap

    • ๐Ÿ›  Fixed #72 (Different HttpConduits sometimes and erroneously share connections)

    • ๐Ÿ›  Fixed #59 (Factor out Rejection Conversion)

    • ๐Ÿ›  Fixed #67 ('cacheResults' directive should honor 'Cache-Control: no-cache' request header)

    • ๐Ÿ›  Fixed most occurrences of implicit ambiguities with SprayJsonSupport

    • ๐Ÿ›  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

  • v0.8.0 Changes

    November 16, 2011
    • โฌ†๏ธ Upgrades:

      • Scala 2.9.1
      • Akka 1.2
      • spray-json 1.0.1
      • SBT 0.11.1 (many thx to Steffen for contributing the original buildfile)
    • ๐Ÿ‘Œ Support for 'application/x-www-form-urlencoded' as well as 'multipart/form-data' form content (many thx to Julien for contributing a lot of the implementation)

    • ๐Ÿ‘Œ Support for 'multipart/mixed' content (un)marshalling

    • ๐Ÿ‘Œ Support for spray-can as the first non-servlet-container web server

    • Completely rewritten spray-client, now based on the new spray-can HttpClient

    • ๐ŸŽ Completely rewritten servlet connector layer for improved performance and stability

    • Three new example projects:

      • spray-client-example
      • spray-example-simple
      • spray-example-spray-can
    • ๐Ÿ“œ Unified SimpleParsers and Unmarshallers into a joint 'Deserializer' hierarchy

    • โœ‚ Removed 'optionalContent' directive (use 'content(as[Option[T]])' instead)

    • ๐Ÿ“‡ Renamed 'spray-http' module to 'spray-base'

    • ๐Ÿ“‡ Renamed cc.spray.marshalling to cc.spray.typeconversion

    • ๐Ÿ“‡ Renamed SprayJsonMarshalling to SprayJsonSupport

    • ๐Ÿšš Moved encoding/decoding to for cc.spray.encoding

    • Simplified case class extraction, now 'as(T)' rather than 'as(instanceOf(T))'

    • โœ… Simplified SprayTest infrastructure making the 'DontDetach' trait obsolete

    • ๐Ÿ›  Lots of other fixes, additions and improvements