[ANN] CGIExt 0.0.2 released - a re-implementation of cgi.rb in Cextension

M

makoto kuwata

Hi, all.

I have released CGIExt 0.0.2.
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-xxx.tar.gz
$ cd cgiext-xxx/
$ 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.

* CGI.escapeHTML()
* CGI.unescapeHTML()
* CGI.escape()
* CGI.unescape()
* CGI.rfc822_date()
* CGI.parse()
* ERB::Util.h()
* Erubis::XmlHelper.escape_xml()
* Tenjin::HtmlHelper.escape_xml()

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


== Authoer

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


== Bug reports

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,139
Latest member
JamaalCald
Top