[Haskell-cafe] [web-devel] Looking for criticism and comments on web-mongrel2.

Clint Moore cmoore at wamboli.com
Fri Jan 21 14:40:31 CET 2011

On Fri, Jan 21, 2011 at 5:28 AM, Michael Snoyman <michael at snoyman.com> wrote:
> On Fri, Jan 21, 2011 at 2:30 PM, Clint Moore <cmoore at wamboli.com> wrote:
> Looks like you've done a good job so far, and have even put in a fair
> amount of docs. Impressive! Just some minor thoughts:

Well thanks for the encouragement!

> * I think you should consider using ByteStrings instead of Strings in
> a lot of places (eg, headers).

Ugh!  I forgot to include in my email that that was the first thing I
am going to do.  I'm actually working on that now.

> * In m2_parse, it looks to me like usage of Parsec is overkill, since
> a simple break would work. As a plus, if you also switch to
> ByteString, you could use breakByte which will give you a highly
> optimized parsing function.

Now this I wouldn't have thought of.  I'll go back into m2_parse and
look it over again.

> * For response_body, I'd **really** avoid usage of String. In fact,
> some form of enumerator would be very good there. But at the very
> least, please switch to a lazy ByteString.

Yep, definitely bytestrings everywhere.  I guess I was overly excited
to get it in front of someone and kinda jumped the gun on releasing
it.  There'll be a new version tomorrow.

> I can't really say too much more without knowing more of the internals
> of zeromq and mongrel2, but I think this is a good project to have
> going for the Haskell community. Thank you.

Again, I appreciate the complement!

> Obviously I'm biased here, but I'd love to see a WAI wrapper for
> mongrel2. Would you be interested in either having this package
> provide a WAI interface, or writing a separate package that wraps this
> package and provides one? I'd be happy to offer some help if you're
> interested.

One of the reasons the handler is so simply implemented is so that, at
least I hope, is that it makes it very simple to implement handlers.
Incidentally, WAI was the first library I was going to start with for
implementing some handlers myself.  I figure the more handlers I write
the more bugs I'll catch.

More information about the Haskell-Cafe mailing list