[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Asynchronous socket library?
- From: "Thomas Harning Jr." <harningt@...>
- Date: Tue, 24 Mar 2009 13:55:39 -0400
On Tue, Mar 24, 2009 at 1:49 PM, Ralph Hempel
<rhempel@hempeldesigngroup.com> wrote:
> Rob Kendrick wrote:
>>
>> On Tue, 24 Mar 2009 09:41:12 -0700
>> "John Dunn" <John_Dunn@qscaudio.com> wrote:
>>
>>> The goal is to allow our users to write scripts which interact with
>>> devices on the network
>>> (1) without having to learn the Berkley sockets interface
>>> (2) ensure that their script don't block execution for too long a
>>> time
>>>
>>> (3) without having to understand coroutines and yield()
>>>
>>> (4) run on both Win32 and Linux platforms
>>
>> This sounds almost precisely like what LuaSocket provides. It's a
>> higher-level interface than Berkley (very easy to get going with),
>> supports non-blocking calls (ie, select), doesn't require you to use
>> co-routines, and works on Windows as well as Linux.
>
> I've used LuaSocket extensively to interface to a product
> that exposes an API over TCP and it's dead easy, customizable, and
> reliable.
>
> Using select() and some coroutine/yield magic might help in terms
> of CPU usage, but they are actually fairly easy to manage once you've
> used them a few times.
I suggest checking 'copas' it's a pretty useful companion to LuaSockets.
If those aren't your cup-of-tea... I suggest checking out libev and libevent ...
If you also want to be fast w/ Windows and use IOCP, there is a
libiocp out there (not sure if it's the fastest method) and I have
heard of libevent support for IOCP...maybe as a patchset...
If done right, you could write a C API merging the features of
libevent/libiocp/etc such that you can easily write a Lua API to it
and feed it necessary calls w/ callbacks/etc...
--
Thomas Harning Jr.