Skip to content

Releases: tumblr/colossus

Built in load balancer, compression, fixes, refactoring

24 Jan 17:31
773e405
Compare
Choose a tag to compare

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.

Prevent XXS attack

18 Oct 16:18
Compare
Choose a tag to compare

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.

Library upgrades, scala 2.12 and refactoring

18 Oct 16:13
Compare
Choose a tag to compare

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)

0.7.1

11 Apr 17:26
Compare
Choose a tag to compare
v0.7.1

0.7.1

0.7.0

21 Mar 15:32
Compare
Choose a tag to compare
v0.7.0

0.7.0

0.6.8

30 Nov 22:09
Compare
Choose a tag to compare
v0.6.8

release 0.6.8

0.6.8-RC1

17 Nov 16:58
Compare
Choose a tag to compare
0.6.8-RC1 Pre-release
Pre-release
v0.6.8-RC1

candidate release 0.6.8-RC1

0.6.8-M2

11 Nov 16:15
Compare
Choose a tag to compare
0.6.8-M2 Pre-release
Pre-release
v0.6.8-M2

milestone release 0.6.8-M2

0.6.8-M1

21 Oct 04:18
Compare
Choose a tag to compare
0.6.8-M1 Pre-release
Pre-release
v0.6.8-M1

milestone release 0.6.8-M1

0.6.7

19 Oct 14:54
Compare
Choose a tag to compare
v0.6.7

release 0.6.7