From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id HAA25792; Thu, 12 Jul 2001 07:31:25 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id HAA25704 for ; Thu, 12 Jul 2001 07:31:24 +0200 (MET DST) Received: from hotmail.com (f122.law15.hotmail.com [64.4.23.122]) by nez-perce.inria.fr (8.11.1/8.10.0) with ESMTP id f6C5VOb06200 for ; Thu, 12 Jul 2001 07:31:24 +0200 (MET DST) Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC; Wed, 11 Jul 2001 22:31:22 -0700 Received: from 152.163.197.43 by lw15fd.law15.hotmail.msn.com with HTTP; Thu, 12 Jul 2001 05:31:22 GMT X-Originating-IP: [152.163.197.43] From: "Jeremy Fincher" To: caml-list@pauillac.inria.fr Subject: [Caml-list] High level (asynchronous) networking library? Date: Thu, 12 Jul 2001 01:31:22 -0400 Mime-Version: 1.0 Content-Type: text/plain; format=flowed Message-ID: X-OriginalArrivalTime: 12 Jul 2001 05:31:22.0750 (UTC) FILETIME=[E2F8A1E0:01C10A93] Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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