Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Swirl - implementation of BEEP for Lua
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Sam Roberts  
View profile  
 More options Nov 27 2008, 1:00 am
From: "Sam Roberts" <vieuxt...@gmail.com>
Date: Wed, 26 Nov 2008 22:00:13 -0800
Local: Thurs, Nov 27 2008 1:00 am
Subject: [beepwg] Swirl - implementation of BEEP for Lua
* About

BEEP is a "protocol kernel" useful for implementing application protocols.

This is a binding of beepcore-c into Lua 5.1, wrapped in a more user-friendly
API implemented directly in Lua.

The swirl core has no dependency on any particular TCP APIs. It can be used
with any, including the non-blocking event-based APIs common in UIs, and other
development frameworks.

However, as an example of usage, and because its useful for me, an event loop
based implementation on top of LuaSocket is included, along with some LuaSocket
extensions to select on arbitary file descriptors, and read raw data from
sockets.

* Availability

Package:

  http://luaforge.net/projects/swirl/

Source:

  http://github.com/sam-github/swirl/tree/master

* License

MIT style, the same as Lua.

* Plans

My goals are to confirm that beepcore-c works well, and is easy to bind into
another language. I started with Lua because its simple (and fun), but I don't
have any active projects that need BEEP for Lua.

I hope to take what I learn and produce a binding into Python's Twisted network
stack, next, and if I ever need a BEEP library for Ruby, I'll know how to make
one easily.

* Benchmarking

One concern of mine with BEEP implementations I've worked with is how fast they
can transfer data. Swirl includes some benchmarks to compare performance with
raw TCP (bm-beep-client/server and bm-raw-client/server).

The benchmark profile is also implemented for Vortex, and I will try to do one
for beep4j as well.  I'm curious to see how the toolkits compare, and I suspect
that techniques to maximize performance for one will work for all of them.

* Beepcore-c

Since beepcore-c is an abandoned project, it might seem odd that I should use
it to implement Swirl. I chose it because its architecture seems to be designed
for ease of embedding in a host language. It's architecture is described here:

http://beepcore-c.sourceforge.net/Architecture.html

Swirl discards the multi-threaded, overly complex, and overly ambitious wrapper
portions of the library, and is implemented directly on the "core".

* Vortex

A previous attempt at Swirl had attempted to bind Vortex into Lua. However, the
pervasive multi-threaded nature of Vortex proved to difficult to deal with. I
had to attempt to make Vortex look single-threaded to the Lua interpreter. This
was quite difficult because Vortex is heavily callback based, but the callbacks
happen on unpredictable threads.

My deadlocks might have been solveable, or might not, but I began to feel I was
fighting uphill. Remnants of this early attempt exist in the code base, such as
the on_ convention for callbacks, and I really appreciate Francis Blazquez's
friendly support while trying to use his toolkit.

* References

http://beepcore-c.sourceforge.net/
http://lua.org
http://www.aspl.es/vortex/
http://www.beepcore.org/
http://www.tecgraf.puc-rio.br/luasocket/

* Contact

Please direct suggestions, patches, offers to pay for continued development,
etc., to Sam Roberts <vieuxt...@gmail.com>

Project is hosted via git, see:

  http://github.com/sam-github/swirl/tree/master


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sam Roberts  
View profile  
 More options Nov 27 2008, 3:31 pm
From: "Sam Roberts" <vieuxt...@gmail.com>
Date: Thu, 27 Nov 2008 12:31:33 -0800
Local: Thurs, Nov 27 2008 3:31 pm
Subject: [beepwg] Swirl - implementation of BEEP for Lua
I apologize if this is received twice. I don't think my initial send
made it through, and I am having trouble verifying from the beepwg
archives. The link here is broken:

  http://beepcore.org/mailman/listinfo/beepwg

* About

BEEP is a "protocol kernel" useful for implementing application protocols.

This is a binding of beepcore-c into Lua 5.1, wrapped in a more user-friendly
API implemented directly in Lua.

The swirl core has no dependency on any particular TCP APIs. It can be used
with any, including the non-blocking event-based APIs common in UIs, and other
development frameworks.

However, as an example of usage, and because its useful for me, an event loop
based implementation on top of LuaSocket is included, along with some LuaSocket
extensions to select on arbitary file descriptors, and read raw data from
sockets.

* Availability

Package:

 http://luaforge.net/projects/swirl/

Source:

 http://github.com/sam-github/swirl/tree/master

* License

MIT style, the same as Lua.

* Plans

My goals are to confirm that beepcore-c works well, and is easy to bind into
another language. I started with Lua because its simple (and fun), but I don't
have any active projects that need BEEP for Lua.

I hope to take what I learn and produce a binding into Python's Twisted network
stack, next, and if I ever need a BEEP library for Ruby, I'll know how to make
one easily.

* Benchmarking

One concern of mine with BEEP implementations I've worked with is how fast they
can transfer data. Swirl includes some benchmarks to compare performance with
raw TCP (bm-beep-client/server and bm-raw-client/server).

The benchmark profile is also implemented for Vortex, and I will try to do one
for beep4j as well.  I'm curious to see how the toolkits compare, and I suspect
that techniques to maximize performance for one will work for all of them.

* Beepcore-c

Since beepcore-c is an abandoned project, it might seem odd that I should use
it to implement Swirl. I chose it because its architecture seems to be designed
for ease of embedding in a host language. It's architecture is described here:

http://beepcore-c.sourceforge.net/Architecture.html

Swirl discards the multi-threaded, overly complex, and overly ambitious wrapper
portions of the library, and is implemented directly on the "core".

* Vortex

A previous attempt at Swirl had attempted to bind Vortex into Lua. However, the
pervasive multi-threaded nature of Vortex proved to difficult to deal with. I
had to attempt to make Vortex look single-threaded to the Lua interpreter. This
was quite difficult because Vortex is heavily callback based, but the callbacks
happen on unpredictable threads.

My deadlocks might have been solveable, or might not, but I began to feel I was
fighting uphill. Remnants of this early attempt exist in the code base, such as
the on_ convention for callbacks, and I really appreciate Francis Blazquez's
friendly support while trying to use his toolkit.

* References

http://beepcore-c.sourceforge.net/
http://lua.org
http://www.aspl.es/vortex/
http://www.beepcore.org/
http://www.tecgraf.puc-rio.br/luasocket/

* Contact

Please direct suggestions, patches, offers to pay for continued development,
etc., to Sam Roberts <vieuxt...@gmail.com>


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Francis Brosnan Blazquez  
View profile  
 More options Nov 28 2008, 3:32 am
From: Francis Brosnan Blazquez <fran...@aspl.es>
Date: Fri, 28 Nov 2008 09:32:47 +0100
Local: Fri, Nov 28 2008 3:32 am
Subject: Re: [beepwg] Swirl - implementation of BEEP for Lua
Hi Sam,

Congratulations for this new BEEP product. I've updated the list of tool
kits to include it [1]. Let me know if you want something modified in
[2].

Cheers!

[1] http://www.beepcore.org/beep-toolkits.html
[2] http://www.beepcore.org/swirl.html
--
Francis Brosnan Blazquez <fran...@aspl.es>
Advanced Software Production Line, S.L.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Francis Brosnan Blazquez  
View profile  
 More options Nov 28 2008, 3:36 am
From: Francis Brosnan Blazquez <fran...@aspl.es>
Date: Fri, 28 Nov 2008 09:36:01 +0100
Local: Fri, Nov 28 2008 3:36 am
Subject: Re: [beepwg] Swirl - implementation of BEEP for Lua
Hi Sam,

> I apologize if this is received twice. I don't think my initial send
> made it through, and I am having trouble verifying from the beepwg
> archives. The link here is broken:

>   http://beepcore.org/mailman/listinfo/beepwg

My fault. List archives are now supported on a google group [1]. I've
updated the list info page to point to it. Your previous message reached
the list.

Cheers!

[1] http://groups.google.com/group/beepwg/topics
--
Francis Brosnan Blazquez <fran...@aspl.es>
Advanced Software Production Line, S.L.


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google