OKWS allows developers to program their Web applications in C++, a compiled and strongly-typed language. We realize that many features of Perl or Python make them seem better-suited to Web programming, but OKWS makes compiled, fast, secure code easy for programmers. It provides:
Reference-counted strings. String manipulation is common in Web programming, and developers ought not pull their hair out managing buffers of characters. OKWS uses SFS's referenced-counted string libraries, and string buffers, allowing for fast and cheap string allocation, concatenation, and manipulation.
-
DBI-like database interface. OKWS provides a DBI-like interface to MySQL.
Simplified cache management. With OKWS, one Web service runs as one process. This greatly simplifies the maintenance of server-side state, eliminating expensive and cumbersome IPC synchronization between a pool of processes performing the same task.
Implicit database connection pooling. Most Web servers (such as Apache) require a database connection for each external client served. OKWS, by contrast, decouples client and database concurrency. Open as many or as few database connections as you like.
Perl-style heredocs for embedded
HTML within C++ source.
Full-featured run-time templating system. Keep your
HTML out of your source by writing most of it to static
HTML templates, stored as regular files. Features of the template language include run-time variable substitution, nestable template inclusion, and switch statements for conditional template inclusion. Templates are read in at initialization and can be updated at runtime.
Cacheable gzip support. Go ahead and compress all of your Web pages; OKWS provides integrated, smart gzip support, so that most of the compression work is done once and cached, even for dynamic documents.
Performance. OKWS Web servers are fast and don't waste memory on things you don't need – like duplicate Apache code text repeated across hundreds of process spaces.
RPC-based network communication. Make remote calls to database servers or dedicated cache servers using standardized SUN-
RPC protocols. With OKWS, network protocols are easy-to-implement, and bandwidth-efficient.
Python Support. Write Web services entirely in Python, but access the fast compiled asynchronous core just the same.