<commit_before>
      __                               
     /                                 
    (___       ___  ___  ___  ___  ___ 
    |    (_/_ |   )|   )|___)|___ |___ 
    |__   / / |__/ |    |__   __/  __/ 
              |
              
  Insanely fast (and small) server-side JavaScript web development framework
  built on **node.js** and the **V8 JavaScript engine**.

  * Stay tuned, coming soon :)

## Features (so far)

  * Sexy DSL
  * Mime helpers
  * Nested parameter parsing
  * Full test coverage
  * Test helpers (mock requests etc)
  * Cookie support
  * Session support
  * Faux method support for RESTful apps
  * Extendable using Express 'Modules'
  * Static file serving
  * View support
  * Routing
    * string matching       
    * regexp with captures  
    * param key substitution
    * pre-conditions
    * overidding
    * etc

## Performance

  Extensive benchmarking will wait until a development version
  has been released. However for simple an average route and response
  body Ruby's Sinatra scored **1454** request per second using Thin, while
  Express scored **2762**.

## Examples

See examples/simple.js for a working server that uses a synchronous handler. 
Just type "node examples/simple.js" and then go to http://localhost:3000/i/like/cheese
For an asynchronous example, run "node examples/async.js" and then go to http://localhost:3000/wait/2000

GET /user/tj/edit
  
    get('user/:name/:operation', function(){
      param('operation') + 'ing ' + param('name')
    })

GET /articles
  
    get('articles', function(){
      'list of articles'
    })

GET /articles/12
  
    get(/articles\/(\d+)/, function(){
      'article id ' + captures[1]
    })
  
POST /user/:id
  
    post('user/:id', function(){
      User.destroy(params('id')) ? <commit_msg>updated readme to match new examples<commit_after>
      __                               
     /                                 
    (___       ___  ___  ___  ___  ___ 
    |    (_/_ |   )|   )|___)|___ |___ 
    |__   / / |__/ |    |__   __/  __/ 
              |
              
  Insanely fast (and small) server-side JavaScript web development framework
  built on **node.js** and the **V8 JavaScript engine**.

  * Stay tuned, coming soon :)

## Features (so far)

  * Sexy DSL
  * Mime helpers
  * Nested parameter parsing
  * Full test coverage
  * Test helpers (mock requests etc)
  * Cookie support
  * Session support
  * Faux method support for RESTful apps
  * Extendable using Express 'Modules'
  * Static file serving
  * View support
  * Routing
    * string matching       
    * regexp with captures  
    * param key substitution
    * pre-conditions
    * overidding
    * etc

## Performance

  Extensive benchmarking will wait until a development version
  has been released. However for simple an average route and response
  body Ruby's Sinatra scored **1454** request per second using Thin, while
  Express scored **2762**.

## Examples

See examples/simple.js for a working server that uses a synchronous handler. 
Just type "node examples/simple.js" and then go to http://localhost:3000/i/like/cheese

For an asynchronous example, run "node examples/async.js" and then go to http://localhost:3000/wait/2000

GET /user/tj/edit
  
    get('user/:name/:operation', function(){
      param('operation') + 'ing ' + param('name')
    })

GET /articles
  
    get('articles', function(){
      'list of articles'
    })

GET /articles/12
  
    get(/articles\/(\d+)/, function(){
      'article id ' + captures[1]
    })
  
POST /user/:id
  
    post('user/:id', function(){
      User.destroy(params('id')) ? 
{'fraction_non_alphanumeric': 0.10616061606160616, 'fraction_numerical': 0.013201320132013201, 'mean_word_length': 2.238646482635797, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6086455', 'n_tokens_mistral': 1121, 'n_tokens_neox': 1046, 'n_words': 333}