Saturday, November 22, 2008

Qore: your new webappsec buddy?

Now I don't do webappsec anymore but if I did, I would I would investigate qore.

Why?

The areas Qore targets are interfacing, database integration, threading (and SMP scalability) and embedding (and arbitrarily restricting) code. Qore is also a dynamically-typed language to facilitate rapid prototyping and development (particularly regarding agile programming, disposable interfaces, etc). To my knowledge there is no other programming language with this design focus.

You can get a feeling for this aspect of Qore's design when programming with Qore's database-independent DBI infrastructure (through the Datasource and DatasourcePool classes), Qore's XML and JSON integration (where XML and JSON strings and qore data structures can be converted from one to the other), easy use of the Socket class and classes provided by modules providing messaging integration, etc.


It is a bit too Perlish for my taste (damn you semi-colons!) but it looks sort of interesting and I'll probably play around with it.

root@ubuntu-ve804:~# qore --version
QORE for Linux unknown (32-bit build), Copyright (C) 2003 - 2008 David Nichols
version 0.7.1-2304 (builtin features: sql, threads, xml, debug)
module API: 0.5
build host: Linux localhost 2.6.24-21-openvz #1 SMP Wed Oct 22 02:50:53 UTC 20
08 i686 GNU/Linux
C++ compiler: g++
CFLAGS: -I/usr/include/libxml2 -D_GNU_SOURCE -D_QORE_LIB_INTERN -DMODULE_DIR="
/usr/local/lib/qore-modules" -g -g -m32 -D_THREAD_SAFE -Wall -lm
LDFLAGS: -lz -lpcre -lxml2 -lbz2 -lssl -lcrypto -g -lm
this build has options:
OPTION atomic operations = true
OPTION stack guard = true
OPTION library debugging = true
OPTION runtime stack tracing = true
ALGORITHM openssl sha224 = true
ALGORITHM openssl sha256 = true
ALGORITHM openssl sha384 = true
ALGORITHM openssl sha512 = true
ALGORITHM openssl mdc2 = false
ALGORITHM openssl rc5 = false
FUNCTION round() = true
FUNCTION timegm() = true
FUNCTION seteuid() = true
FUNCTION setegid() = true
FUNCTION parseXMLWithSchema() = true

1 comment:

David Nichols said...

would be happy to hear about your experiences with qore as I am the author of the language...

david_nichols at users sourceforge net