Hi,

The current Stackless socket module [1] could do with being replaced.
If what I describe below appeals to anyone as something to work on,
then please let me know.

The problems:
- It does not scale.  Being based on select, it is limited to handling
512 sockets at a time.
- It is based on the 'asyncore' framework and because of this, is
unnecessarily complicated.

I've been playing with a more scalable solution for Windows [2].  It
provides sufficient support for TCP, but none for UDP.  I have no
personal need for the IOCP-based Stackless socket module at this time,
so it is unlikely I will complete it until I do.

What I would like to propose, is that someone take the existing module
[1] and using the pyiocp solution [2] as a guide, refactor it to use
the 'select' module instead of asyncore.  As I also mention above, the
select functionality is limited to handling 512 sockets at any given
time.  If it is necessary, a solution to this might be to bundle
sockets into sets of 512 and pass the sets through select one by one.
Of course, on platforms other than Windows there may be other
asynchronous IO solutions available within the 'select' module which
do not have the limitation of select.  A key aspect of the library
should be that there are no dependencies over and above the standard
library.  And on Windows the pyiocp functionality can be brought in.

There's a range of interesting things to learn about in this project:
- Cross-platform asynchronous IO resources.
- A wide range of socket functionality.

Anyway, let me know if you are interested.

Cheers,
Richard.

[1] 
http://stacklessexamples.googlecode.com/svn/trunk/examples/networking/stacklesssocket.py
[2] http://code.google.com/p/pyiocp

_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless

Reply via email to