Introduction
This page lists REST frameworks categorized by supported languages.
Details
|Framework |RMM |conneg*
|conditional**
|cache***
|Java|JAX-RS|.NET|Ruby|Python|Perl|PHP|Erlang|Java.mdScript|Clojure|Scala|Haskell|
|:----------------------|:------------------|:--------|:--------------|:---------|:---|:-----|:---|:---|:-----|:---|:--|:-----|:-------------------|:------|:----|:------|
|ActiveResource |? |? | | | | | |Yes | | | | | | | | |
|BlueEyes |? |? |? |? | | | | | | | | | | |Yes | |
|Bowler |? |? |? |? | | | | | | | | | | |Yes | |
|compojureREST |? |Yes | | | | | | | | | | | |Yes | | |
|Crochet |? |? |? |? | | | | | | | | | | |Yes | |
|Django REST framework |? |Yes |Yes |Yes | | | | |Yes | | | | | | | |
|Exyus |3[1]
|Yes |Yes |Yes | | |Yes | | | | | | | | | |
|FRAPI |3[2]
|Yes | |Yes | | | | | | |Yes| | | | | |
|Jersey |2 |Yes | | |Yes |Yes | | | | | | | | | | |
|MindTouchDream |? | | |? | | |Yes | | | | | | | | | |
|OpenRasta |? |? | | | | |Yes | | | | | | | | | |
|Pinky |? |? |? |? | | | | | | | | | | |Yes | |
|Ramone |? |Yes | | | | |Yes | | | | | | | | | |
|Recess |? |Yes | | | | | | | | |Yes| | | | | |
|Resauce |? |? | | | | | | | | |Yes| | | | | |
|Resourceful |? |Yes |Yes |Yes | | | |Yes | | | | | | | | |
|RESTEasy |? |Yes |Yes |Yes |Yes |Yes | | | | | | | | | | |
|Restfulie |3 |Yes |Yes |Yes |Yes | |Yes |Yes | | | | | | | | |
|Restish |? |Yes |Yes |? | | | | |Yes | | | | | | | |
|REST in Akka|? |? |? |? | | | | | | | | | | |Yes | |
|REST in HAppS |? |? |? |? | | | | | | | | | | | |Yes |
|REST In Lift |? |? |? |? | | | | | | | | | | |Yes | |
|REST In Python |? |? | | | | | | |Yes | | | | | | | |
|REST In WCF|? |? | | | | |Yes | | | | | | | | | |
|Restlet |? |Yes | | |Yes |Yes | | | | | | | | | | |
|Persevere |3 |Yes |Yes | | | | | | | | | |Yes | | | |
|Piston |? |Yes |Yes |Yes | | | | |Yes | | | | | | | |
|Scalatra |? |? |? |? | | | | | | | | | | |Yes | |
|Sinatra |2 |Yes |Yes | | | | |Yes | | | | | | | | |
|Snooze |? |? | | | | |Yes | | | | | | | | | |
|spray |? |? |? |? | | | | | | | | | | |Yes | |
|Taimen |2 |Yes | | |Yes | | | | | | | | |Yes | | |
|TastyPie |? |Yes |Yes |Yes | | | | |Yes | | | | | | | |
|Unfiltered |? |? |? |? | | | | | | | | | | |Yes | |
|VRaptor |? |? |? |? |Yes | | | | | | | | | |Yes | |
|Webmachine |2 |Yes |Yes |Yes | | | | | | | |Yes | | | | |
|Yesod |? |? |? |? | | | | | | | | | | | |Yes |
*
conneg = Content Negotiation for Media Types, understanding and using the Accept-*
headers
**
conditional = Conditional requests on the client side, using Last-Modified and ETag headers, providing support for 304 Not Modified response. Server side support to conditional requests: providing both headers and 304 when required.
***
cache = Caching support on the client side (used for conditional requests and expiration policies through cache headers)
[1]
Exyus does not automatically generate hypermedia links but developers have full control over representations via XSLT transformations
[2]
FRAPI does not automatically generate hypermedia but instructs users on how to have full control over their representation.