<commit_before>Jubilee
=========

A fast rack server build upon [vertx](http://vertx.io)

Issues
----------

* Long running request get reset, Thread pool execute time
* Failed to serve uploaded images
* Rack handler still need a latch

Installation
-----------

```gem install jubilee```

TODO
----------

* EventBus
* WebSocket [need test]

Performance
===========

Get request for test/sinatra_app
-----------

Got rival performance as puma.
(ab -c 20 -n 10000)

jubilee: 1493rps after warm
puma: 1327rps after warm

unicorn (worker 10): 1440rps

Serve static file
-----------

Requirement<commit_msg>update README, clean TODOs and fixed issues<commit_after>Jubilee
=========

A fast rack server build upon [vertx](http://vertx.io)

Issues
----------

* Direct use of HttpServerResponse object in Ruby Response class is
  potentially slow. see [Improving Java Integration
  Performance](https://github.com/jruby/jruby/wiki/ImprovingJavaIntegrationPerformance)

TODO
----------

* Daemon mode
* Try non-block IO
* site
* benchmark: Get, static file, post

* EventBus
* WebSocket [need test]

Fixed
-----------

* Long running request get reset, connection timeout. Fix by increase
  connection timeout from 5 seconds to 10 seconds, cannot be higher, or
  it just doesn't respond on first request.  donno why.
* Failed to serve uploaded images. Fixed by use vertx sendfile
* Rack handler still need a latch. Fixed by execute a hook in
  server#stop

Installation
-----------

```gem install jubilee```

Performance
===========

Get request for test/sinatra_app
-----------

Got rival performance as puma.
(ab -c 20 -n 10000)

jubilee: 1493rps after warm
puma: 1327rps after warm

unicorn (worker 10): 1440rps

Serve static file
-----------

Requirement
{'fraction_non_alphanumeric': 0.1488876212207644, 'fraction_numerical': 0.02567027952082145, 'mean_word_length': 3.1465721040189125, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2666853', 'n_tokens_mistral': 587, 'n_tokens_neox': 514, 'n_words': 207}