<?xml version="1.0"?>
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns:html="http://www.w3.org/1999/xhtml">
  <atom:id>http://bill.welliver.org/atom/pike/Fins/Features</atom:id>
  <atom:title type="text">electronic.alchemy :: Features</atom:title>
  <atom:updated>2026-04-14T10:52:52-04:00</atom:updated>
  <atom:link href="http://bill.welliver.org/atom/pike/Fins/Features" type="application/atom+xml"></atom:link>
  <atom:link href="http://bill.welliver.org/space/pike/Fins/Features" type="text/html"></atom:link>
  <atom:link href="http://bill.welliver.org/rss/pike/Fins/Features" type="application/rss+xml"></atom:link>
  <atom:generator uri="http://modules.gotpike.org/blahblah/Public.Syndication.ATOM" version="0.1">Public.Syndication.ATOM (Pike v8.0 release 702)</atom:generator>
  <atom:icon>http://bill.welliver.org/favicon.ico</atom:icon>
  <atom:logo>http://bill.welliver.org/static/images/alchemy.gif</atom:logo>
  <atom:subtitle type="xhtml"><html:div xmlns:html="http://www.w3.org/1999/xhtml"><html:h3 class="heading-1">Features</html:h3><html:p class="paragraph"/>
<html:b class="bold">Model</html:b>&#xD;
<html:ul class="minus">
<html:li>Object relational mapping with support for mySQL, SQLite and Postgres (preliminary support) database engines</html:li>
<html:li>Numerous mapping classes allow rich functionality while seamlessly mapping a SQL database onto Pike objects</html:li>
<html:li>Write an entire web application without writing a single SQL statement</html:li>
<html:li>Object instances can be created using either factory methods (which allows caching) or through direct creation of objects from datatype classes</html:li>
<html:li>Built in Caching system enhances performance with sliding expirations</html:li>
<html:li>Model can be automatically configured from database schema (see <html:a href="/space/pike/Fins/Developer/Model">Model</html:a>).</html:li>
<html:li>Validation, with separate validation available for creation and updates.</html:li>
<html:li>Model can be used in standalone applications without the full Fins framework (see <html:a href="/space/pike/Fins/Developer/StandaloneModel">StandaloneModel</html:a>.</html:li>
</html:ul><html:b class="bold">View</html:b>&#xD;
<html:ul class="minus">
<html:li>Modular template system is easily extended for custom functionality</html:li>
<html:li>Two template systems are provided out of the box: Simple tempaltes, a Smarty-like markup syntax, and a Standards-compliant XSLT template engine.</html:li>
<html:li>Simple templates are high-performance and provide rich functionality, such as runtime configurable Macros while promoting separation of application logic from interface display logic.</html:li>
<html:li>Several macros (such as remote_form and remote_link) designed to make AJAX functionality quick and easy.</html:li>
<html:li>Support for layouts that separate application (and controller level) formatting from event level content.</html:li>
<html:li>Full set of <html:a href="/space/pike/Fins/i18n">i18n</html:a> tools.</html:li>
</html:ul><html:b class="bold">Controller</html:b>&#xD;
<html:ul class="minus">
<html:li>Maps Pike functions and objects onto a web URI namespace.</html:li>
<html:li>Functions are provided for returning various types of data and web server responses and passing information between requests</html:li>
<html:li>XMLRPCController makes public functions available via XML-RPC permitting simple integration</html:li>
<html:li>DocController eases application development by automatically selecting the proper template based on a request's position in the controller tree. Additionally, DocController automatically sets the layout for the controller the event is located within.</html:li>
<html:li>ScaffoldController eases <html:a href="CRUD" class="wiki_link_external">http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete</html:a> interface generation by providing automatic interface generation based on a data model's schema.</html:li>
<html:li>Built-in support for <html:a href="JSON" class="wiki_link_external">http://www.json.org</html:a> encoding and decoding (see the Tools.JSON module) to ease data transport as well as a JSON-RPC controller.</html:li>
<html:li>Pre and post request filtering for purposes such as authorization, encoding, etc.</html:li>
</html:ul><html:b class="bold">Integration</html:b>&#xD;
<html:ul class="minus">
<html:li>XMLRPC and JSON-RPC Controllers for providing automatic bindings of Pike methods to standards based RPC technologies.</html:li>
<html:li>StompController for messaging integration using <html:a href="Stomp" class="wiki_link_external">http:// stomp.codehaus.org</html:a>.</html:li>
<html:li>JMSController for <html:a href="JMS" class="wiki_link_external">http://www.sun.com/products/jms/</html:a></html:li>
</html:ul>messaging integration&#xD;
<html:ul class="minus">
<html:li>SMTPController for handling inbound email.</html:li>
</html:ul><html:b class="bold">Development</html:b>&#xD;
<html:ul class="minus">
<html:li>A template is available for the <html:a href="TextMate" class="wiki_link_external">http:// www.macromates.com</html:a> text editor</html:li>
<html:li>Runs on UNIX, Linux and MacOS X; Windows support is planned.</html:li>
<html:li>Fins provides a built in web server, which means no additional web server is required for development.</html:li>
<html:li>Provides Rendezvous bookmarks on Rendezvous enabled systems, such as MacOS X.</html:li>
<html:li>All of the power of the Pike language is immediately available to Fins applications.</html:li>
<html:li>Templates can be set to automatically reload on change, speeding development.</html:li>
<html:li><html:a href="/space/pike/Fins/Developer/Breakpointing">Breakpointing</html:a> support, which allows you to specify breakpoints, and access an interactive hilfe session mid- request.</html:li>
<html:li>pike -x fins tools provide easy access to the built in http server, as well as a new application creation tool.</html:li>
</html:ul><html:b class="bold">Deployment</html:b>&#xD;
<html:ul class="minus">
<html:li>Provides a HTTP container for development or simple production deployments</html:li>
<html:li>A connector module is available for the Caudium web application server, allowing easy deployment of Fins applications</html:li>
<html:li>FCGI and SCGI containers for use with any FastCGI or SCGI capable webserver</html:li>
<html:li>Built in application packaging features make it easy to distribute your application.</html:li>
</html:ul>New features are being added regularly, so it's often best to have a look at the CVS changelog:<html:p class="paragraph"/>
RSS: invalid RSS document<html:p class="paragraph"/>
&#xD;
</html:div></atom:subtitle>
</atom:feed>
