Apilator is a high-performance, self-contained clustered server in pure Java for building data APIs over HTTP.
- High-performance: it was written from scratch with minimalistic code, providing only the necessary functionality. Its components and algorithms have been carefully selected to achieve performance well above the average. It uses multiple threads and non-blocking I/O to get the maximum out of your hardware, especially suitable for system with large number of low-activity clients (e.g., any mobile or web based application). Apilator is capable of serving 1,000 requests per second per CPU core per gigaHerz. This is at least twice as faster as “high-performance” PHP frameworks like CodeIgniter.
- Self-contained: it does not need an external application server to run and only requires a standard JRE. It also contains everything necessary to provide advanced features like automated session cookies, automatically synchronised session storage across multiple instances etc.
- Clustered: it is ready to run in parallel in multiple instances out of the box. It features unique relaxed (meaning: without any pre-configuration), dynamically adjusted session storage to give you the maximum flexibility of adding or removing servers form the cluster without the need to configure or restart anything.
Apilator was built around the idea of frontend-backend split applications: a frontend app which contains everything necessary to work (think of HTML templates and styles for a JavaScript-based browser-based app or of a native app for a mobile platform) and a backend which primarily serves data to it. Thus the main mindset of Apilator is to accept and serve JSON over HTTP; it can, in addition, serve static content or, in fact, whatever your program it to.
GET IT ROLLING
All information you need to configure and run Apilator is in the README file.
For even more fun, a HACKING guide is provided too.
For more in-depth design info, see the series of articles about Apilator’s design in Sunday School of Cool Programming.
For version history, see the ChangeLog file.
A list of planned, but still pending features, is in the TODO file.
Known issues and bug reporting are found in BUGS file.
This software is released with hope that it will be useful, but with no warranty of any type at all. Use it at your own risk. You are free to distribute it as well as to modify it as long as you preserve the original code. See LICENSE file for details.
SLOC SUMMARY
- Total Physical Source Lines of Code (SLOC): 3,230
- Development Effort Estimate, Person-Months (Basic COCOMO model): 8.22
- Total Estimated Cost to Develop: 92,535 USD
- Generated using David A. Wheeler’s ‘SLOCCount‘
DOWNLOADS
Apilator comes in a ZIP archive containing the sources plus an Eclipse project.
Download current version:
- Source code: Apilator-1.0.zip