libsconex provides platform-independent wrappers around some common features required by network servers, such as sockets and threads. This makes it very easy to develop a module which will then compile and work successfully on all platforms supported by Sconeserver.
The following is a class diagram for libsconex (click for fullsize readable version):
Sconex implements platform-independent stream classes for file and socket I/O, with a highly extensible event-driven stream pipeline system. Includes standard stream classes for buffering and tokenizing. Also includes an event driven stream multiplexer for managing non-blocking streams. Sconeserver includes standard socket modules for Local (UNIX domain), IP, IPv6 and Bluetooth sockets.
Modules and Providers
Sconex defines a powerful plugin system, allowing extension modules to be loaded and unloaded at runtime. The provider interface allows modules to dynamically extend the functionality of the system (for example: allowing different types of database to be accessed, implement new object types in SconeScript, or handle new protocols).
A simple object-orientated scripting system which can be used for configuration, inter-module communication and can be embedded into web pages using the Sconesite plugin.
Job scheduling and threading
Sconex implements a flexible job scheduling system, which can operate in either single-threaded (multiplexed) mode, or multi-threaded mode with a dynamic thread pool using POSIX threads.