[Haskell-cafe] Haskell Web Framework Happstack 6 Released
Hello, I am pleased to announce the release of Happstack 6. We fully recommend that all Happstack users migrate to the new release. Happstack is a high-performance Haskell web framework. It has high- level functionality for routing requests, extracting parameters, manipulating responses, serving static file contents, compression responses, and more. It includes an integrated HTTP server and a native RAM-cloud database system known as MACID. This allows you to deploy your web application with out having to configure apache, php, mysql, memcached, etc! Install instructions can be found here: http://happstack.com/download If you are porting existing applications you should check out the Happstack 6 migration guide: http://code.google.com/p/happstack/wiki/Happstack6Migration Porting should be pretty straight-forward. Despite the massive reorganization, the exports from Happstack.Server are largely the same. What's Exciting! The focus of this release has been happstack-server. The primary goal was to make happstack-server much easier to learn and to use. This includes: 1. improving the overall organization of the library 2. greatly improving the documentation 3. making it easier to install 4. ensuring that the server provides fast, reliable performance 5. making it easier for new (and old) developers to understand and get started If you have looked at Happstack before and found it too difficult to understand, I highly recommend you take another look. The new organization and documentation make it far easier to understand. More Logical Organiation In prior versions, the Happstack.Server.SimpleHTTP module contained just about everything, with little organization, and no real differentiation between the external API and the library internals. In Happstack 6, SimpleHTTP has been refactored into numerous, smaller modules. The internals have been moved into Happstack.Server.Internal.* so that they are not leaking into the external API. This should make it much easier to find what you are looking for, and prevent you from accidently running across internal things like the WebT monad, which you do not really need to know anything about. Better Documentation The API documentation for happstack-server is also much better. All external API functions should now have good haddock documentation with many inline examples. However, learning a new library by studying the API documentation can still be pretty frustrating. So we also have the brand new Happstack Crash Course. http://happstack.com/docs/crashcourse/index.html. The Happstack Crash Course covers a vast majority of the happstack- server API. It covers the API in a logical manner and includes many downloadable, runnable examples. It is intended to be read start to finish, and to also be usable as a reference guide for specific How do I do XXX questions. Additionally, the guestbook example has been updated to a cleaner, more modern style of Happstack coding. It also has more comments/ haddock documentation. Better API -- During the process of documenting Happstack, many small improvements where made to the API. Once you try to document something stupid you realize how stupid it is and decided it would be good to fix it first ;) For example, the Cookie API now makes it more obvious how to create session cookies vs persistent cookies. And makes it obvious how to expire a cookie. The functions for looking up values in the query string and require body no longer require the use of the RqData monad. You can use the look* functions directly in the ServerPart monad. If you do choose to use RqData, it now has an Applicative instance which can accummulate and report lookup errors. (http://happstack.blogspot.com/2010/10/is-rqdata-monad-still-needed.html ) There are a bunch of other improvements to request data handling documented here, http://happstack.com/docs/crashcourse/RqData.html. Easier Install -- In order to make Happstack easier to install we have removed as many dependencies as possible. happstack-data no longer depends on happstack-util, which makes it easier to install happstack-data or happstack-state with out the rest of the framework. HSP and HStringTemplate support has been moved into *optional* happstack-hsp and happstack-hstringtemplate packages. New Features Happstack also has a number of new features including: - support for Heist templates(http://happstack.com/docs/crashcourse/Templates.html#helloheist ) - support for Hamlet templates - improved environment for extracting query string and form values (http://happstack.blogspot.com/2010/10/is-rqdata-monad-still-needed.html ) - support for recompilation and reloading of templates in a running server
Re: [Haskell-cafe] Haskell Web Framework Happstack 6 Released
I don't know who said it first, but I'm repeating it. 2011 is going to be the tipping point year for haskell web frameworks. Thanks Jeremy! 2011/2/17 Jeremy Shaw jer...@n-heptane.com: Hello, I am pleased to announce the release of Happstack 6. We fully recommend that all Happstack users migrate to the new release. Happstack is a high-performance Haskell web framework. It has high-level functionality for routing requests, extracting parameters, manipulating responses, serving static file contents, compression responses, and more. It includes an integrated HTTP server and a native RAM-cloud database system known as MACID. This allows you to deploy your web application with out having to configure apache, php, mysql, memcached, etc! Install instructions can be found here: http://happstack.com/download If you are porting existing applications you should check out the Happstack 6 migration guide: http://code.google.com/p/happstack/wiki/Happstack6Migration Porting should be pretty straight-forward. Despite the massive reorganization, the exports from Happstack.Server are largely the same. What's Exciting! The focus of this release has been happstack-server. The primary goal was to make happstack-server much easier to learn and to use. This includes: 1. improving the overall organization of the library 2. greatly improving the documentation 3. making it easier to install 4. ensuring that the server provides fast, reliable performance 5. making it easier for new (and old) developers to understand and get started If you have looked at Happstack before and found it too difficult to understand, I highly recommend you take another look. The new organization and documentation make it far easier to understand. More Logical Organiation In prior versions, the Happstack.Server.SimpleHTTP module contained just about everything, with little organization, and no real differentiation between the external API and the library internals. In Happstack 6, SimpleHTTP has been refactored into numerous, smaller modules. The internals have been moved into Happstack.Server.Internal.* so that they are not leaking into the external API. This should make it much easier to find what you are looking for, and prevent you from accidently running across internal things like the WebT monad, which you do not really need to know anything about. Better Documentation The API documentation for happstack-server is also much better. All external API functions should now have good haddock documentation with many inline examples. However, learning a new library by studying the API documentation can still be pretty frustrating. So we also have the brand new Happstack Crash Course. http://happstack.com/docs/crashcourse/index.html. The Happstack Crash Course covers a vast majority of the happstack-server API. It covers the API in a logical manner and includes many downloadable, runnable examples. It is intended to be read start to finish, and to also be usable as a reference guide for specific How do I do XXX questions. Additionally, the guestbook example has been updated to a cleaner, more modern style of Happstack coding. It also has more comments/haddock documentation. Better API -- During the process of documenting Happstack, many small improvements where made to the API. Once you try to document something stupid you realize how stupid it is and decided it would be good to fix it first ;) For example, the Cookie API now makes it more obvious how to create session cookies vs persistent cookies. And makes it obvious how to expire a cookie. The functions for looking up values in the query string and require body no longer require the use of the RqData monad. You can use the look* functions directly in the ServerPart monad. If you do choose to use RqData, it now has an Applicative instance which can accummulate and report lookup errors. (http://happstack.blogspot.com/2010/10/is-rqdata-monad-still-needed.html) There are a bunch of other improvements to request data handling documented here, http://happstack.com/docs/crashcourse/RqData.html. Easier Install -- In order to make Happstack easier to install we have removed as many dependencies as possible. happstack-data no longer depends on happstack-util, which makes it easier to install happstack-data or happstack-state with out the rest of the framework. HSP and HStringTemplate support has been moved into *optional* happstack-hsp and happstack-hstringtemplate packages. New Features Happstack also has a number of new features including: - support for Heist templates (http://happstack.com/docs/crashcourse/Templates.html#helloheist) - support for Hamlet templates - improved environment for extracting query string and form values