The Blog of Matthew Elder


Haskell HTTP Library

Must Have

  • HTTP 1.1 Compliance
  • Stability!
  • Simplicity!
  • Clean Separation of HTTP Responder from any type of Daemon

Should Have

  • Mainstream Browser Compatibility (IE, FF, Safari, Opera)
  • Reliable Test Suite for Browser Compatibility

Could Have (Future Goals)

  • Webserver Daemon
  • Easy CDN (content distribution network)
  • Easy (and safe) on-the-fly JS and CSS minification
  • Easy (and safe) on-the-fly JS and CSS consolidation (one file to download)

Tentative Milestone Releases

0.1

  • Basic HTTP Responder works with GET and POST
  • Initial responder API documented

0.5

  • Basic HTTP Responder works with major browsers
  • HTTP Responder API stabilized
  • Browser Test Suite

1.0

  • Basic HTTP Daemon works with major browsers
  • Performance & Stress testing suite
  • Fuzz and Regression Test Suite

Development Virtues

  1. All bugfixes must have a regression test for the root cause. This is very important!
  2. Patches committed to stable branches will be as minimal as possible and must be justified.

Software Opinions

The software will adhere to this opinions instead of allowing configuration.

  1. Aliasing is the devil! Redirects are ok. This library will never _assist_ the user with this devious task.
  2. Don’t trust the web client. Ever.
  3. Find the best practice and assume that the user/programmer wants this. Do NOT accomodate.

3 Comments so far
Leave a comment

It would be awesome to get Happs to be the best system for building REST web services. The fact it does not need a database and the fact it will handle state and state serialization so elegantly lends itself so nicely. I’m interested in helping out on the happstack development and will write some tutorials for the wiki. Could I get your email? Thanks.

Comment by Marshall

I’m interested in helping out on development of the HTTP library. The current haskell library does not use lazy bytestrings and eats up a ton of memory, making tools that use it like the Amazon web services libraries useless. Let me know when you start and I’ll be happy to help out. Are you going to be using git or darcs?

Comment by Marshall

Re: Happstack HTTP Development

Thanks for your enthusiasm! The http library mentioned on this blog post is not what the happstack project is using. Please get on irc.freenode.net #happs if you want to be involved; there is alot of discussions going on about the http library right now. You can see the logs at http://happstack.com/irc-logs

My email is matt att mattelder dawt org

Comment by Matthew Elder




Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>