Introducing RestExpress: Instant, High-Performance, RESTful Services in Java

RestExpress is the easiest way to create RESTful web services in Java. An extremely Lightweight, Fast, REST Engine and API for Java. Supports JSON and XML serialization automagically as well as ISO 8601 date formats. A thin wrapper on Netty IO HTTP handling, RestExpress lets you create extremely scalable, stand-alone REST web services rapidly.

Powered by RestExpress

RestExpress is the easiest way to create RESTful web services in Java. An extremely Lightweight, Fast, REST Engine and API for Java. Supports JSON and XML serialization automagically as well as ISO 8601 date formats. A thin wrapper on Netty IO HTTP handling, RestExpress lets you create extremely scalable, stand-alone REST web services rapidly.

It takes 5 minutes to get your first services up and running using the kickstart application and we’ve seen 15,000+ requests per second and 10,000 simultaneous connections on a single desktop box. Try accomplishing that with the competition!

Inspired by Ruby on Rails and Sinatra, RestExpress is designed as a micro-framework with sub-projects, Syntaxe, RepoExpress and OAuthExpress to provide domain/DTO validation, MongoDB persistence storage and OAuth authentication simply and easily.

Check it out (literally) at www.GitHub.com!

6 thoughts on “Introducing RestExpress: Instant, High-Performance, RESTful Services in Java”

  1. I have tried that code of KickStart example. I have build it and run it using ant. With the Apache benchmark tool I have made some testing of 1,00,000 request with 1000 concurrency level. It gives me around 700 to 800 request per second that it can process. Why it is happening so???

  2. I am building high performance, large scale REST API/JSON based product. I am coming from C++ background and this is first time going to work on java. My quick test shows that RestExpress outperforms CppCMS (C++) and it is much easier/quicker to develop.

    Are you going to continue development on this project? Would you recommend RestExpress or Play framework?

  3. Thanks for your comment!

    Yes. The project is ongoing with regular check-ins to GitHub at this point.

    Regarding RestExpress vs. the Play framework, my answer is “it depends.” Play is a full-stack framework, including RDBMS and HTML. While RestExpress really emphasizes just RESTful services. It doesn’t include any front-end portion (as of yet). Plus, the back-end repositories supported, for the moment, are all NoSQL with the MongoDB version being most mature (although, one could build a Hibernate-based repository really easily or use Hibernate straight-up). In other words, in the Ruby world if Play is equivalent to Ruby on Rails, RestExpress is more equivalent to Sinatra.

    So, IMO, if you’re creating, say, a mobile app that has a server side component using MongoDB as its persistence store, RestExpress is a good choice. Otherwise, if you’re creating a straight-up web application using HTML/CSS/JavaScript, Play is a good choice. On the other hand, for a high-scale, single-page JavaScript application, RestExpress may be your ticket. In other words, since RestExpress doesn’t directly support UX concerns, if you want an integrated user interface framework, RestExpress isn’t optimal. But if you’re creating an application where the UX is separate anyway (such as mobile or a JavaScript-based app), then RestExpress is a good choice. Especially when considering scale, deployment ease, and performance.

  4. Create a fat jar by ‘mvn clean package’, deploy the jar to the server and run it (preferably using nohup). That’s it!

    On earlier versions that don’t use the shade plugin by default, you’d follow ‘mvn clean package’ with ‘mvn assembly:single’ to create a zip file. Unzip that zip file to your server and run the jar file that’s in the root directory.

Leave a Reply

Your email address will not be published. Required fields are marked *