Quran/libquran-ng
This page describes the proposal of the new libquran-ng (new generation). The name is just for distinguishing the current libquran and the proposed libquran. In the future the name libquran is the one to be used.
Current state of libquran
* Depends on: expat for XML processing, libogg and libspeex for audio capabilities. * Applications need only the textual function of libquran also need to satisfy all the dependencies above
Architecture
The libquran-ng detachs audio capabilities in order can be used by applications which only need text functionalities. The audio handlers is separated as plug-ins, so we could have the quran audio not only in Speex, but also in other codecs such as .ogg or .mp3 which is already available on the web.
libquran-ng also tries to be more suitable for use in embedded environment and other environment which considers the memory usage on top of everything (webserver, etc). Currently libquran loads the whole XML file on the memory and parse it with expat. libquran-ng doesn't use libexpat at all at runtime. It has a binary format for quran, produced by other helper (e.g. quran-compiler program) from the XML source.
Bindings
Probably in the future it would be nice to have the language bindings for several popular high-level programming languages.