CGIExt: README.txt

Release: 0.0.3

copyright(c) 2007 kuwata-lab.com all rights reserved.

http://rubyforge.org/projects/cgiext/

About

'CGIExt' is a re-implementation of 'cgi.rb' in C extension. It makes your web application faster.

Currently, not of all functions are implemented.

Notice: This module is still 'alpha release' and it's specification may change in the future.

Install

You need C compiler and Ruby's header file to compile CGIExt.

$ tar xzf cgiext-0.0.3.tar.gz
$ cd cgiext-0.0.3/
$ ruby extconf.rb
$ make
$ sudo make install

Usage

The following is an example.

require 'cgi'
require 'erb'
require 'cgiext'   # replaces functions automatically

If you require 'cgiext', the following functions are replaced by faster implementation of CGIExt.

Notice that these are replaced only when you have required that module. For example, if you have not required ERB before requiring 'cgiext', ERB::Util.h() is not replaced.

Benchmark

Try 'bench.rb' included in CGIExt archive. This script tests functions of CGI and ERB.

### without CGIExt
$ ruby -s bench.rb -N=100000
                          user     system      total        real
CGI.escapeHTML        5.110000   0.020000   5.130000 (  5.188709)
ERB::Util.h           5.030000   0.020000   5.050000 (  5.109625)
CGI.unescapeHTML     31.090000   0.090000  31.180000 ( 31.492502)
CGI.escape            4.630000   0.020000   4.650000 (  4.679305)
CGI.unescape          3.780000   0.000000   3.780000 (  3.800455)
CGI.rfc1123_date      2.020000   0.010000   2.030000 (  2.049406)
CGI.parse            12.030000   0.030000  12.060000 ( 12.156096)
CGI.new              19.670000   0.050000  19.720000 ( 19.854737)

### with CGIExt
$ ruby -s bench.rb -N=100000 -cgiext
                          user     system      total        real
CGI.escapeHTML        0.990000   0.010000   1.000000 (  1.026906)
ERB::Util.h           0.960000   0.000000   0.960000 (  0.971983)
CGI.unescapeHTML      1.200000   0.000000   1.200000 (  1.210950)
CGI.escape            0.470000   0.000000   0.470000 (  0.478267)
CGI.unescape          0.340000   0.000000   0.340000 (  0.343116)
CGI.rfc1123_date      0.600000   0.010000   0.610000 (  0.634919)
CGI.parse             1.990000   0.000000   1.990000 (  2.003067)
CGI.new               8.990000   0.020000   9.010000 (  9.084454)

The result shows that CGIExt makes functions of CGI and ERB extremingly faster.

License

Ruby's license

Author

makoto kuwata <kwa(at)kuwata-lab.com>

Bug reports

If you have bugs or questions, report them to kwa(at)kuwata-lab.com.