- Fast load and execution times. Fast enough to run as a CGI script, opening Ruby MVC development to virtual hosting environments that don't allow Rails or Merb application servers.
- Built on Rack. Easily configured to run atop CGI, WEBrick, Mongrel, Thin, and other server stacks. Choose a server stack to fit your environment, scale, and speed demands, and easily switch server stacks as your app grows and your needs change.
- Sequel ORM. Kiss uses the up-and-coming Sequel ORM library, providing a simple database-abstraction layer plus an object relational model layer with ActiveRecord-like functionality.
- Thread-safe for multi-threaded app servers. Built to scale. Each thread gets its own controller object with its own database connection, so simultaneous requests don't step on each other.
- Database connection pool. Multi-threaded applications return database connections to a pool for reuse. More connections are automatically opened and added to the pool as needed.
- Neighborly actions and templates. With Kiss, each action and template lives in a separate file, and these files may be stored side-by-side in the same directory to make them easier to navigate. No more scrolling up and down a file tree to jump from an action to its corresponding template; just click the next file in the list. (If you prefer to separate template design from action programming more forceably, you may also keep actions and templates in separate directories.)
- Exceptionally useful exception reports. Displays GET and POST parameters, ENV variables, cookies, last SQL query, and any other data you choose to help you debug your app. Also provides full traceback, with expandable code excerpts from each stack frame and links to TextMate (for Mac users) to edit the corresponding file lines, for point-and-click debugging navigation. Reports can be output to the web browser, logged to a file, or emailed to your dev team. See an example report.
- Built-in benchmark timer functions. Start and stop benchmark timers with custom labels to measure wall-clock delays quickly and easily, helping you optimize your application code.
- Virtually no configuration necessary. Just open up a new scaffold directory and get started writing action, model, and template code. Add database settings and other configuration options as you go along.
- Simple YAML Configuration Format. Kiss also supports multiple configurations for development, test, and production environments.
- Database optional. Skips Sequel require and loads and executes faster if no database needed.
- Automatic form generation and validation. Generates attractive HTML forms to your specifications, with data optionally pre-populated from a database object. Also validates form input and optionally saves input data back to the database object.
- Built-in authentication support. Kiss gives you a head start on login/logout code with cookie handling, Sequel session storage, and convenient methods for storing, retrieving, and expiring session data and objects.
- Automatic action classes. No need to explicitly define action classes or worry about renaming classes when you want to restructure your action code.
- Automatic database model classes. Kiss automatically creates a database model class for any table you wish to access. No need to explicitly define database models until you want to add methods to or relationships between models.
- No routing tables. Action URLs correspond to the location of actions nested in your project's actions directory. No need to consult the routing table to figure out where an action's code resides; just follow the path shown in the URL.
- Easy, powerful template language. Embedded Ruby (ERB) with extensions based on Perl's Template Toolkit, rendered by the ultra-fast Erubis template engine. No steep learning curve of helper functions and other "magic" as with frameworks such as Rails.
© 2005-2008 Shawn Van Ittersum and MultiWidget LLC. All rights reserved. MIT X11 License.