caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Jeremy Fincher" <tweedgeezer@hotmail.com>
To: caml-list@pauillac.inria.fr
Subject: [Caml-list] High level (asynchronous) networking library?
Date: Thu, 12 Jul 2001 01:31:22 -0400	[thread overview]
Message-ID: <F122M3oryKFRJrzdDW60000ab1d@hotmail.com> (raw)

I've been learning O'Caml for the past little bit, and after not finding any 
high level asynchronous networking libraries (that is, libraries/modules for 
writing high performance network servers), I figured I would write one, 
since it seemed a non-trivial problem that wasn't too far out of my league.

Anyway, I've been looking at possible ways to write one.  In Python, I've 
made quite a bit of use of the "asyncore" module 
(http://www.nightmare.org/medusa/index.html), which is a very production 
proven (it's the asynchronous networking engine used in Zope) and simple 
framework for writing high performance asynchronous servers.  It seems that 
implementing asyncore in O'Caml would be fairly straightforward, so I've 
been putting it off a bit while I search for a possibly better solution.

Someone has written "asyncore turned inside out" using Stackless Python, an 
implementation of Python that has first-class continuations) using 
continuations to implement the apparent multi-tasking.  It apparently (I've 
not used it myself) makes the asynchronous networking part of the coding a 
little more transparent to the user than asyncore does.  I'm curious if 
something similar could be implemented in O'Caml with closures, and if it 
could achieve similar user-transparency.

Does anyone have any comments on any of the above options?  Are there other 
options I'm not considering which could be better?  Are there any 
implementations of what I want already?  What I'm looking for is as much 
abstraction away from the low-level socket/select loops as is reasonable for 
efficiency's sake.

Thanks,
Jeremy
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


             reply	other threads:[~2001-07-12  5:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-12  5:31 Jeremy Fincher [this message]
2001-07-12  9:06 ` Markus Mottl
2001-07-12 12:14   ` Jeremy Fincher
2001-07-15  7:26     ` Ohad Rodeh
2001-07-12 20:37 ` Gerd Stolpmann
2001-07-14  2:29 ` John Max Skaller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F122M3oryKFRJrzdDW60000ab1d@hotmail.com \
    --to=tweedgeezer@hotmail.com \
    --cc=caml-list@pauillac.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).