Skip to content
Joe Betz edited this page Apr 9, 2014 · 76 revisions

Rest.li is an open source REST framework for building robust, scalable RESTful architectures using type-safe bindings and asynchronous, non-blocking IO. Rest.li fills a niche for applying RESTful principals at scale with an end-to-end developer workflow for buildings REST APIs that promotes clean REST practices, uniform interface design and consistent data modeling.

Features

  • End-to-end framework for building RESTful APIs
  • Approachable APIs for writing non-blocking client and server code using ParSeq
  • Type-safe development using generated data and client bindings
  • JAX-RS inspired annotation driven server side resource development
  • Engineered and battle tested for high scalability and high availability
  • Optional Dynamic Discovery subsystem adds client side load balancing and fault tolerance
  • Backward compatibility checking to ensure all API changes are safe
  • Support for batch operations, partial updates and projections
  • Web UI for for browsing and searching a catelog of rest.li APIs.

Website

[http://rest.li]

Community

Discussion Group: Linkedin Rest.li Group Follow us on twitter: @rest_li Issue Tracking: github issue tracking

Using Rest.li JARs

If you are not modifying the rest.li source code, you don't need to build rest.li. You can simply depend on the artifacts in the maven central repository. The current latest version in Maven Central is 1.15.2.

To build from source, please see this page.

Quickstart Guides and Examples

Design Principles

  • Promote uniform interfaces through consistent data modeling and REST conventions
  • Seamlessly integrate a JSON serializable data layer including a data schema language and generated language bindings
  • Provide published interface definitions, generated from server code
  • Make calling services dead simple with generated type-safe client bindings
  • Versioning with automated compatibility checking
  • Simple asynchronous API
  • Dynamic discovery with load balancing

Requirements

  • Java 1.6+
  • Gradle 1.8+ or SBT 0.13.0+

Documentation

Make sure to check out the various wiki pages as well!

Clone this wiki locally