2009-06-08 26 views

Respuesta

19

Twisted es casi la respuesta a cualquier cosa seriamente relacionada con la red en Python, pero realmente hay que comprar en la forma Twisted de hacer las cosas. No es intrínsecamente una pila P2P, es un bucle de eventos, un sistema de devolución de llamada y un marco de trabajo en red.

Divmod Vertex no se mantiene actualmente, y todavía era bastante duro cuando traté de usarlo hace unos años.

CSpace podría ser lo más parecido a lo que está buscando: "una plataforma para la comunicación segura, descentralizada, de usuario a usuario a través de Internet". Se abstrae el cruce P2P y NAT para que su aplicación pueda actuar normalmente y no ser "una aplicación P2P".

De manera similar, hubo un viejo sistema P2P de Australia llamado "The Circle" hace unos años, escrito completamente en Python, que tenía mensajes seguros de P2P, chat, uso compartido de archivos y otras características. 0.41c fue la última versión: http://savannah.nongnu.org/projects/circle/

también de mis favoritos:

http://entangled.sourceforge.net/ se enreda, "una tabla hash distribuida (DHT) basado en Kademlia, así como un espacio de tuplas aplicación peer-to-peer. "

http://khashmir.sourceforge.net/ es una tabla hash distribuida Python, notable porque utiliza el protocolo Airhook, que es muy tolerante a fallas (diseñado para uso, por ejemplo, a través de redes celulares).

http://kenosis.sourceforge.net/ es un sistema Python P2P RPC.

+0

Divmod Vertex ha tenido un poco de mantenimiento recientemente. Ahora puede encontrarlo en http://github.org/twisted/vertex –

+0

@ Jean-Paul Calderone es un marco de trabajo de Vertex para la aplicación p2p o simplemente en teoría? El documento se centra más en la filosofía que en la guía real. – PieOhPah

2

No sé si existe tal cosa, aunque puedo ofrecer las siguientes alternativas:

+0

Gracias por la respuesta. Pero actualmente necesito absolutamente CPython. Usar JXTA-C parece demasiado complicado por ahora –

0

cito de the Sun JXTA pages que tienen una fecha de diciembre de 2002,

"El proyecto JXTA tiene un comentario de Java La implementación de rence está disponible en download.jxta.org y actualmente está trabajando para agregar implementaciones de referencia en otros lenguajes comunes, incluidos C, Objective C, Perl, Ruby y Python. Aunque la aplicación Java es la implementación más completa de los protocolos JXTA, la implementación en C (disponible tanto para Win32 y Linux) se acerca rápidamente el mismo nivel de integridad ".

+0

Desafortunadamente, la implementación de Python está lejos de estar completa –

-3

Stackless Python puedan ser de su interés.

+0

¿No estoy seguro de cómo esto se aplica a las aplicaciones P2P? –

4

mejor opción que se me ocurre, por supuesto, es utilizar twisted.

Old version of BitTorrent fue construido con ella. El enlace es a la última versión conocida que utiliza retorcido. se puede estudiar como punto de partida.

Hay también Vertex. Es una biblioteca que utiliza retorcida y permite p2p con eludir cortafuegos.

+0

parece que el enlace de Vértice no es válido ahora – Darek

+0

@tdi sí, desafortunadamente el servidor divmod ha sufrido algunos problemas de hardware y no hay espejo. Puedo encontrar el código fuente de Vertex en http://launchpad.net/divmod pero no en los documentos que estaba vinculando antes. Si puede encontrar un nuevo URL de documentación de Vertex para señalar, por favor dígame, actualizaré la respuesta. Gracias. – nosklo

0

Hola (del líder de las dos últimas versiones de JXTA para Java 2.6 & 2.7),

No hay ninguna aplicación conocida de JXTA en Python.

Si alguien quiere abordar este problema, primero debe conocer los protocolos JXTA 2.0. El libro Practical JXTA II disponible en línea para leer en Scribd debería ayudar a comprender la tecnología.

¡Salud!

3

Desde que se hizo esta pregunta y se respondió posteriormente, ha surgido ZeroMQ, y me GUSTA. El módulo de Python se llama pyzmq. Hace que el proceso de creación de zócalos TCP sea menos torpe, especialmente cuando se trata de patrones de mensaje distintos de Solicitud> Responder, aunque también lo hace. Es ideal para servidores básicos, aplicaciones p2p, mensajería, procesamiento distribuido, lo que sea.

Cuestiones relacionadas