/scalaz-http

A purely-functional library for HTTP server and client development.

Primary LanguageScalaGNU Lesser General Public License v3.0LGPL-3.0

scalaz-http

Join the chat at https://gitter.im/scalaz/scalaz-http A purely-functional library for HTTP server and client development.

Goal

A high-performance, purely-functional library for generating servers, type-safe clients, and rich API documentation from a single type-safe service definition.

Introduction & Highlights

Scalaz HTTP is a principled functional programming library for building typesafe web applications. The library is focused on composability and scalability. Unlike most other libraries, Scalaz HTTP creates clients and documentation from a single server definition.

  • Type-safe client and documentation generation
  • Type-safe, purely-functional design that works beautifully with Scalaz
  • No macros, runtime reflection, or compiler plug-ins

Competition

Http4s Akka-Http Finch Rho1 Typedapi
purely functional 𐄂 𐄂
no macros or reflection 𐄂 𐄂 𐄂 𐄂2
scalaz compatability 𐄂 𐄂 𐄂 𐄂 3
client generation 𐄂 𐄂 𐄂 𐄂
documentation generation 𐄂 𐄂 𐄂 𐄂 𐄂

1 Rho is a DSL for creating HTTP endpoints with Http4s
2 Typedapi relies on shapeless, therefore uses Macros indirectly
3 Typedapi is independent of any HTTP/library implementation

Background