[Haskell-cafe] Doing something constructive. [Was: Climbing up the shootout...]

Don Stewart dons at galois.com
Wed Sep 24 15:31:45 EDT 2008


manlio_perillo:
> However I'm looking for a good environment for implementing generic 
> internet servers, or web applications with special needs.
> As an example one of my "maybe future" tasks is to write a simple 
> BitTorrent tracker + seeder.

You could look at conjure, the bitorrent client that uses STM for
network multiplexing,

    http://darcs.haskell.org/~lemmih/conjure/

> Twisted (a Python asynchronous framework) is a confortable environment, 
> but I feel concurrent Haskell is superior.

Should be a lot faster, given there's compiled native code, and no
global locks. Actually, the very kind of thing we see on the shootout
now :)

> It surely will work using just select, but since I have experience 
> (including indirect experience) with both Twisted and Nginx, I know that 
> using select is asking for troubles (but the solution used by Haskell is 
> very new for me).

Yes, you'd use probably STM's `orElse` to multiplex IO from different
sources, and GHCs lightweight threads for concurrency. We've used
solutions like this at Galois to build servers that are both high level
and efficient.

-- Don


More information about the Haskell-Cafe mailing list