What is Cheyenne?
Cheyenne aims to be a full-featured Apache-class web application server implementation using the REBOL programming language.
Cheyenne is built on top of our UniServe async network framework, so Cheyenne's kernel inherits the gains of asynchronous I/O and mono-process lightweight design, while being able to spawn worker processes to dispatch the load for heavier requests. So, Cheyenne has good scalability making it suitable for small or medium sized web sites. It can sustain the load of up to 500 requests/sec on servers with dual-core CPU.
It's still on beta stage, but it has reached a good level of features and stability, so it's already in use by several companies (including our own) and private users. The Syllable operating system has adopted Cheyenne on its server edition.
Besides providing a REBOL-based production level web application server, Cheyenne can be a good choice for a small,
fast, personal web server. In order to achieve that, we're releasing free Cheyenne binary versions for
Windows, Linux and OSX platforms in addition to the raw source package.
The current beta version offers the following features :
- HTTP/1.0 and
1.1 protocols supported.
Persistent connections for HTTP/1.1 and
Keep-Alive support for HTTP/1.0.
- Web Socket support (alpha).
- Browser cache management
- Customizable HTTP error pages.
transfers support (streamed data transfers for RSP).
- Memory caching for static pages.
- Full support for virtual hosts.
- Support for a wide range of OS (Windows, OSX and most of UNIX variants).
- Requests cut in phases for modular architecture (Apache-like).
- Built-in modules :
- mod-static : core features and static file handler.
- mod-alias : aliases and redirection support.
- mod-ssi : server side includes support.
- mod-action : dynamic handlers executed in background processes.
- mod-rsp : REBOL Server Pages support.
- mod-userdir : cheyenne's exe runtime user and group rights settings (for unix).
- mod-upload : query server for file upload progress in real-time.
- mod-fastcgi : third-party applications support thru FastCGI interface.
- mod-extapp : launch and control third-party external servers.
- mod-embed : easy Cheyenne integration in any REBOL app.
- mod-socket : web sockets application framework (alpha).
- mod-cors : provides support for CORS
- Configuration file with dedicated and expandable
- Update configuration in live without restarting the server.
- Support for "kill -HUP"
for reloading configuration.
- REBOL CGI support
with persistent processes (FastCGI performances).
- General CGI support (run any CGI script).
- RSP, REBOL Server Pages support including:
- WebApp container: web application framework.
- Complete API with dozens of useful functions built-in.
- Automatic sessions management.
- Database Access abstraction layer.
- SQL queries results transparent caching.
- Localization framework provided.
- Automatic output compression (using deflate method)
- Built-in job scheduler CRON-like engine with simple dialect (experimental)
- Built-in MTA service send emails from your RSP scripts without the need for 3rd-party SMTP server. (experimental)
- Windows OS specific features:
- Can be controlled from system tray icon and menu.
- Can run as a Windows Service and switch back to user mode from systray.
ReBorCon 2011 Presentation
Cheyenne and UniServe source code are published under BSD
open source license.