- Add QueryParamMatcher to the dsl which returns a ValidationNel.
- Dsl can differentiate between '/foo/' and '/foo'.
- Added http2 support for blaze backend.
- Added a metrics middleware usable on all server backends.
- Websockets are now modeled by an scalaz.stream.Exchange.
- Add
User-Agent
andAllow
header types and parsers. - Allow providing a Host header to the blaze client.
- Upgrade to scalaz-stream-7.0a.
- Added a CORS middleware.
- Numerous bug fixes.
- Numerous version bumps.
- Fix bug in Request URI on servlet backend with non-empty context or servlet paths.
- Allow provided Host header for Blaze requests.
- Avoid loading javax.servlet.WriteListener when deploying to a servlet 3.0 container.
- Forgot to pull origin before releasing. Use v0.6.4 instead.
- Use the thread pool provided to the Jetty servlet builder.
- Avoid throwing exceptions when parsing headers.
- Make trailing slash insignificant in service prefixes on servlet containers.
- Fix mapping of servlet query and mount prefix.
- Update to blaze-0.5.1
- Remove unneeded error message (90b2f76097215)
- GZip middleware will not throw an exception if the AcceptEncoding header is not gzip (ed1b2a0d68a8)
- Remove ResponseBuilder in favor of Response companion.
- Allow '';'' separators for query pairs.
- Make charset on Message an Option.
- Add a
flatMapR
method to EntityDecoder. - Various enhancements to QueryParamEncoder and QueryParamDecoder.
- Make Query an IndexedSeq.
- Add parsers for Location and Proxy-Authenticate headers.
- Move EntityDecoder.apply to
Request.decode
andRequest.decodeWith
- Move headers into
org.http4s.headers
package. - Make UriTranslation respect scriptName/pathInfo split.
- New method to resolve relative Uris.
- Encode query and fragment of Uri.
- Codec and wrapper type for URL-form-encoded bodies.
- Add SSL support to all server builders.
- Add Date header to blaze-server responses.
- Close connection when error happens during body write in blaze-server.
- Use asynchronous servlet I/O on Servlet 3.1 containers.
- ServletContext syntax for easy mounting in a WAR deployment.
- Support Dropwizard Metrics collection for servlet containers.
- Empty strings are a JSON decoding error.
- Add codec instances for Argonaut's CodecJson.
- Add codec instances for Json4s' Reader/Writer.
- New module to support Twirl templates
- Split scala-xml support into http4s-scala-xml module.
- Change inferred type of
scala.xml.Elem
toapplication/xml
.
- Support for signing oauth-1 requests in client.
- Fix blaze-client when receiving HTTP1 response without Content-Length header.
- Change default blaze-client executor to variable size.
- Fix problem with blaze-client timeouts.
- Upgrade to blaze 0.4.1 to fix header parsing issue in blaze http/1.x client and server.
- Upgrade to argonaut-6.1-M5 to match jawn. #157
- Upgrade to jawn-0.7.2. Old version of jawn was incompatible with argonaut. [#157]](http4s#157)
- Include context path in calculation of scriptName/pathInfo. #140
- Fix bug in UriTemplate for query params with multiple keys.
- Fix StackOverflowError in query parser. #147
- Allow ';' separators for query pairs.
- Client syntax has evloved and now will include Accept headers when used with EntityDecoder
- Parse JSON with jawn-streamz.
- EntityDecoder now returns an EitherT to make decoding failure explicit.
- Renamed Writable to EntityEncoder
- New query param typeclasses for encoding and decoding query strings.
- Status equality now discards the reason phrase.
- Match AttributeKeys as singletons.
- Added async timeout listener to servlet backends.
- Start blaze server asynchronously.
- Support specifying timeout and executor in blaze-client.
- Use NIO for encoding files.
- Fix whitespace parsing in Authorization header #87
Uri.query
andUri.fragment
are no longer decoded. #75
- Change HttpService form a
PartialFunction[Request,Task[Response]]
toService[Request, Response]
, a type that encapsulates aRequest => Task[Option[Response]]
- Upgrade to scalaz-stream-0.6a
- Upgrade to blaze-0.3.0
- Drop scala-logging for log4s
- Refactor ServerBuilders into an immutable builder pattern.
- Add a way to control the thread pool used for execution of a Service
- Modernize the Renderable/Renderer framework
- Change Renderable append operator from ~ to <<
- Split out the websocket codec and types into a seperate package
- Added ReplyException, an experimental way to allow an Exception to encode a default Response on for EntityDecoder etc.
- Many bug fixes and slight enhancements
- New client API with Blaze implementation
- Upgrade to scalaz-7.1.0 and scalaz-stream-0.5a
- JSON Writable support through Argonaut and json4s.
- Add EntityDecoders for parsing bodies.
- Moved request and response generators to http4s-dsl to be more flexible to other frameworks'' syntax needs.
- Phased out exception-throwing methods for the construction of various model objects in favor of disjunctions and macro-enforced literals.
- Refactored imports to match the structure followed by scalaz.
- Scala 2.11 support
- Spun off http4s-server module. http4s-core is neutral between server and the future client.
- New builder for running Blaze, Jetty, and Tomcat servers.
- Configurable timeouts in each server backend.
- Replace Chunk with scodec.bits.ByteVector.
- Many enhancements and bugfixes to URI type.
- Drop joda-time dependency for slimmer date-time class.
- Capitalized method names in http4s-dsl.
- Initial public release.