2008-11-16 09:39:08 -05:00
USING: assocs help.markup help.syntax kernel
quotations sequences strings urls ;
2008-11-14 05:01:26 -05:00
IN: furnace
HELP: adjust-redirect-url
2008-11-16 10:03:30 -05:00
{ $values { "url" url } { "url'" url } }
2008-11-14 05:01:26 -05:00
{ $description "" } ;
HELP: adjust-url
2008-11-16 10:03:30 -05:00
{ $values { "url" url } { "url'" url } }
2008-11-14 05:01:26 -05:00
{ $description "" } ;
HELP: base-path
2008-11-16 10:03:30 -05:00
{ $values { "string" string } { "pair" "a pair with shape " { $snippet "{ path responder }" } } }
2008-11-14 05:01:26 -05:00
{ $description "" } ;
HELP: client-state
2008-11-16 10:03:30 -05:00
{ $values { "key" string } { "value/f" { $maybe string } } }
2008-11-14 05:01:26 -05:00
{ $description "" } ;
HELP: each-responder
2008-11-16 10:03:30 -05:00
{ $values { "quot" "a " { $link quotation } " with stack effect " { $snippet "( responder -- )" } } }
2008-11-14 05:01:26 -05:00
{ $description "" } ;
HELP: exit-with
{ $values
{ "value" null }
}
{ $description "" } ;
HELP: hidden-form-field
{ $values
{ "value" null } { "name" null }
}
{ $description "" } ;
HELP: link-attr
{ $values
{ "tag" null } { "responder" null }
}
{ $description "" } ;
HELP: modify-form
{ $values
{ "responder" null }
}
{ $description "" } ;
HELP: modify-query
{ $values
{ "query" null } { "responder" null }
{ "query'" null }
}
{ $description "" } ;
HELP: modify-redirect-query
{ $values
{ "query" null } { "responder" null }
{ "query'" null }
}
{ $description "" } ;
HELP: nested-forms-key
{ $description "" } ;
HELP: nested-responders
{ $values
{ "seq" sequence }
}
{ $description "" } ;
HELP: post-client-state
{ $values
{ "key" null } { "request" null }
{ "value/f" null }
}
{ $description "" } ;
HELP: referrer
{ $values
{ "referrer/f" null }
}
{ $description "" } ;
HELP: request-params
{ $values
{ "request" null }
{ "assoc" assoc }
}
{ $description "" } ;
HELP: resolve-base-path
{ $values
{ "string" string }
{ "string'" string }
}
{ $description "" } ;
HELP: resolve-template-path
{ $values
{ "pair" null }
{ "path" "a pathname string" }
}
{ $description "" } ;
HELP: same-host?
{ $values
{ "url" url }
{ "?" "a boolean" }
}
{ $description "" } ;
HELP: user-agent
{ $values
{ "user-agent" null }
}
{ $description "" } ;
HELP: vocab-path
{ $values
{ "vocab" "a vocabulary specifier" }
{ "path" "a pathname string" }
}
{ $description "" } ;
HELP: with-exit-continuation
{ $values
{ "quot" quotation }
}
{ $description "" } ;
2008-11-14 23:51:53 -05:00
ARTICLE: "furnace.persistence" "Furnace persistence layer"
2008-11-14 22:59:15 -05:00
{ $subsection "furnace.db" }
2008-11-14 23:51:53 -05:00
"Server-side state:"
2008-11-14 05:01:26 -05:00
{ $subsection "furnace.sessions" }
{ $subsection "furnace.conversations" }
{ $subsection "furnace.asides" }
2008-11-14 23:51:53 -05:00
{ $subsection "furnace.presentation" } ;
ARTICLE: "furnace.presentation" "Furnace presentation layer"
2008-11-14 05:01:26 -05:00
"HTML components:"
{ $subsection "html.components" }
{ $subsection "html.forms" }
"Content templates:"
{ $subsection "html.templates" }
{ $subsection "html.templates.chloe" }
{ $subsection "html.templates.fhtml" }
2008-11-14 22:59:15 -05:00
{ $subsection "furnace.boilerplate" }
2008-11-14 23:51:53 -05:00
"Other types of content:"
2008-11-14 22:59:15 -05:00
{ $subsection "furnace.syndication" }
2008-11-14 23:51:53 -05:00
{ $subsection "furnace.json" } ;
ARTICLE: "furnace.load-balancing" "Load balancing and fail-over with Furnace"
"The Furnace session manager persists sessions to a database. This means that HTTP requests can be transparently distributed between multiple Factor HTTP server instances, running the same web app on top of the same database, as long as the web applications do not use mutable global state, such as global variables. The Furnace framework itself does not use any mutable global state." ;
ARTICLE: "furnace" "Furnace framework"
"The " { $vocab-link "furnace" } " vocabulary implements a full-featured web framework on top of the " { $link "http.server" } ". Some of its features include:"
{ $list
"Session management capable of load-balancing and fail-over"
"Form components and validation"
"Authentication system with basic authentication or login pages, and pluggable authentication backends"
"Easy Atom feed syndication"
"Conversation scope and asides for complex page flow"
}
"Major functionality:"
{ $subsection "furnace.actions" }
{ $subsection "furnace.alloy" }
{ $subsection "furnace.persistence" }
{ $subsection "furnace.presentation" }
2008-11-16 09:39:08 -05:00
{ $subsection "furnace.auth" }
2008-11-14 23:51:53 -05:00
{ $subsection "furnace.load-balancing" }
"Utilities:"
{ $subsection "furnace.referrer" }
2008-11-14 05:01:26 -05:00
{ $subsection "furnace.redirection" }
2008-11-14 23:51:53 -05:00
"Related frameworks:"
{ $subsection "db" }
{ $subsection "xml" }
{ $subsection "http.server" }
{ $subsection "logging" }
{ $subsection "urls" } ;
2008-11-14 05:01:26 -05:00
ABOUT: "furnace"