Colossus Versions Save

I/O and Microservice library for Scala

v0.11.0

6 years ago

Load balancer

Previously clients had to be manually wrapped in a load balancer class to add load balancing and retry logic to clients. This logic is now built into clients and is configurable. The client is passed a sequence of addresses instead of just one. The default behavior is to retry using every host in the list with zero backoff. For example, with one host, only one attempt is made; with five hosts, five attempts will be made using each of the hosts. The number of retries and the backoff strategy is configurable, see the client docs for more details. The old load balancer has been deprecated and will be removed in a future version.

Filters and HTTP compression

Filter functionality has been added to request handlers so if you want logic to be applied to every request you can add a filter. Specifically this means that compression has been added to HTTP services so requests can be uncompressed. See the services docs for more details.

Consistent redis and memcache interfaces

The redis API has been simplified so the default behavior is to return options, which matches the design of the memcache API. The old methods have been deprecated and will be removed in a future version.

v0.10.1

6 years ago

An undefined route would return No route for ${request.head.url}, which could allow for a cross-site scripting attack. The code was change to just output Not found.

v0.10.0

6 years ago

To migration from 0.9.x to 0.10.x:

  • Package namespace changes, a non-exhausted list:

    • colossus.protocols.http.server.HttpServer => colossus.protocols.http.HttpServer
    • colossus.protocols.http.server.Initializer => colossus.protocols.http.Initializer
    • colossus.protocols.http.server.RequestHandler => colossus.protocols.http.RequestHandler
    • colosuss.metrics.LoggerSender => colosuss.metrics.senders.LoggerSender
    • colosuss.metrics.OpenTsdbSender => colosuss.metrics.senders.OpenTsdbSender
  • Content type removed from HttpBody and is now correctly accessible as a HttpHeader. For example:

    request.ok(HttpBody("text", HttpHeader("content-type", "application/json")))
    

    Becomes

    request.ok(HttpBody("text")).withContentType(ContentType.ApplicationJson)
    

v0.7.1

8 years ago

v0.7.0

8 years ago

v0.6.8

8 years ago

v0.6.8-RC1

8 years ago

v0.6.8-M2

8 years ago

v0.6.8-M1

8 years ago

v0.6.7

8 years ago