[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